Datos Personales

Alumno: Daniel Alejandro Bulnes Reyna
Matrícula: 1441186 Hora: M1-M2
Taller de Programación Orientada a Objetos
Dra. Sara Elena Garza

viernes, 9 de diciembre de 2011

HERENCIA

En mi codigo, no pude identificar la herencia, pero pondre un ejemplo que vi y que me ayudo a entender un poco mejor este tema.



// La declaración de la clase Punto representa un par de coordenadas x-y.
 
public class Punto3 {
   private int x;  // parte x de un par de coordenadas
   private int y;  // parte y de un par de coordenadas
 
   // constructor sin argumentos
   public Punto3()
   {
       // la llamada implícita al constructor de Object ocurre aquí
   }
 
   // constructor
   public Punto3( int valorX, int valorY )
   {
      // la llamada implícita al constructor de Object ocurre aquí
      x = valorX;  // no hay necesidad de validación
      y = valorY;  // no hay necesidad de validación
   }
 
   // establecer x en el par de coordenadas
   public void establecerX( int valorX )
   {
      x = valorX;  // no hay necesidad de validación
   }
 
   // devolver x del par de coordenadas
   public int obtenerX()
   {
      return x;
   }
 
   // establecer y en el par de coordenadas
   public void establecerY( int valorY )
   {
      y = valorY;  // no hay necesidad de validación
   }
 
   // devolver y del par de coordenadas
   public int obtenerY()
   {
      return y;
   }
 
   // devolver la representación String del objeto Punto3
   public String toString()
   {
      return "[" + obtenerX() + ", " + obtenerY() + "]";
   }
 
} // fin de la clase Punto3




// La clase Circulo4 hereda de Punto3 y accede a las variables x e y
// de Punto 3 mediante los métodos public de Punto3.
 
public class Circulo4 extends Punto3 {
 
   private double radio;  // El radio de Circulo4
 
   // constructor sin argumentos
   public Circulo4()
   {
      // La llamada implícita al constructor de Punto3 ocurre aquí
   }
 
   // constructor
   public Circulo4( int valorX, int valorY, double valorRadio )
   {
      super( valorX, valorY );  // llamar explícitamente al constructor de Punto3
      establecerRadio( valorRadio );
   }
 
   // establecer el radio
   public void establecerRadio( double valorRadio )
   {
      radio = ( valorRadio < 0.0 ? 0.0 : valorRadio );
   }
 
   // devolver el radio
   public double obtenerRadio()
   {
      return radio;
   }
 
   // calcular y devolver el diámetro
   public double obtenerDiametro()
   {
      return 2 * obtenerRadio();
   }
 
   // calcular y devolver la circunferencia
   public double obtenerCircunferencia()
   {
      return Math.PI * obtenerDiametro();
   }
 
   // calcular y devolver el área
   public double obtenerArea()
   {
      return Math.PI * obtenerRadio() * obtenerRadio();
   }
 
   // devolver la representación String del objeto Circulo4
   public String toString()
   {
      return "Centro = " + super.toString() + "; Radio = " + obtenerRadio();
   }
 
} // fin de la clase Circulo4






// Prueba de la clase Cilindro.
import java.text.DecimalFormat;
import javax.swing.JOptionPane;
 
public class PruebaCilindro {
 
   public static void main( String[] args )
   {
       // crear el objeto Cilindro
       Cilindro cilindro = new Cilindro( 12, 23, 2.5, 5.7 );
 
       // obtener las coordenadas x-y, radio y altura iniciales del Cilindro
       String salida = "La coordenada X es " + cilindro.obtenerX() +
          "\nLa coordenada Y es " + cilindro.obtenerY() + "\nEl radio es " +
          cilindro.obtenerRadio() + "\nLa altura es " + cilindro.obtenerAltura();
 
       cilindro.establecerX( 35 );          // establecer la nueva coordenada x
       cilindro.establecerY( 20 );          // establecer la nueva coordenada y
       cilindro.establecerRadio( 4.25 );   // establecer el nuevo radio
       cilindro.establecerAltura( 10.75 );  // establecer la nueva altura
 
       // obtener la representación String del nuevo valor de cilindro
       salida +=
          "\n\nLa nueva ubicación, radio y altura del cilindro son\n" +
          cilindro.toString();
 
       // dar formato a los valores de punto flotante con 2 dígitos de precisión
       DecimalFormat dosDigitos = new DecimalFormat( "0.00" );
 
       // obtener el diámetro del Cilindro
       salida += "\n\nEl diámetro es " +
          dosDigitos.format( cilindro.obtenerDiametro() );
 
       // obtener la circunferencia del Cilindro
       salida += "\nLa circunferencia es " +
          dosDigitos.format( cilindro.obtenerCircunferencia() );
 
       // obtener el área del Cilindro
       salida += "\nEl área es " + dosDigitos.format( cilindro.obtenerArea() );
 
       // obtener el volumen del Cilindro
       salida += "\nEl volumen es " + dosDigitos.format( cilindro.obtenerVolumen() );
 
       JOptionPane.showMessageDialog( null, salida ); // mostrar resultados
 
       System.exit( 0 );
 
    } // fin de main
 
} // fin de la clase PruebaCilindro

No hay comentarios:

Publicar un comentario