martes, 23 de noviembre de 2010

Herencia
















La herencia es una forma de reutilización de software en la que las clases se crean absorbiendo los datos y métodos de una clase existente, y se mejoran con nuevas capacidades. O con modificaciones en las capacidades ya existentes.
SUPERCLASES Y SUBCLASES
 Cuando un programa es heredado de otro automáticamente pasa a ser una subclase y el programa del cual fue heredado pasa a ser una superclase


MIEMBROS PROTECTED
 Son un intermedio entre los modificadores de acceso public y private



INGENIERIA DE SOFTWARE MEDIANTE HERENCIA
 Cuando una nueva clase extiende a una clase existente la nueva clase hereda los miembros no private de la clase existente, se puede personalizar la nueva clase para que se adapte a nuestras necesidades, incluyendo miembros adicionales y sobrescribiendo los miembros de la superclase.
 Esto se hace en java sin necesidad del código fuente de la superclase tan solo con el acceso al archivo .class de la misma.
CONCLUCIONES
 La reutilización de software reduce el tiempo de desarrollo de los programas
 Una subclase es mas especifica que su superclase y representa a un grupo mas pequeño de objetos
 Una subclase puede declarar a sus propios miembros, por lo que una subclase es mas grande que su superclase


EJEMPLO…..

Para poder realizar el ejemplo se debe crear en java proyec y en este se crean 3 class
El primer class tiene como nombre Circulo el código es el siguiente.

public class Circulo extends Punto {
private double radio;

public Circulo(int valorX, int valorY, double valorRadio)
{
super(valorX, valorY);
establecerRadio(valorRadio);
System.out.println("constructor de Circulo: " + this);
}

protected void finalize()
{
System.out.println("Finalizador de Circulo: " + this);
super.finalize();
}

public void establecerRadio(double valorRadio)
{
radio=(valorRadio<0.0>
}

public double obtenerRadio()
{
return radio;
}

public double obtenerDiametro()
{
return 2*obtenerRadio();
}

public double obtenerCircunferencia()
{
return Math.PI*obtenerDiametro();
}

public double obtenerArea()
{
return Math.PI*obtenerRadio()*obtenerRadio();
}

public String toString()
{
return "centro = " + super.toString() + "; Radio = " + obtenerRadio();
}
}
El segundo class tiene como nombre Prueba el código es el siguiente.

public class Prueba {


public static void main(String[] args) {

Punto punto;
Circulo circulo1, circulo2;
punto=new Punto(11,22);
System.out.println();
circulo1=new Circulo(72, 29, 4.5);

System.out.println();
circulo2=new Circulo(5, 7, 10.67);

punto=null;
circulo1=null;
circulo2=null;

System.out.println();

System.gc();

}

}

El tercero class tiene como nombre Punto el código es el siguiente.

public class Punto {

private int x;
private int y;

public Punto(int valorX, int valorY)
{
x=valorX;
y=valorY;
}
protected void finalize()
{
System.out.println("Finalizador de punto: " + this);
}

public void establecerX(int valorX)
{
x=valorX;
}
public int obtenerX()
{
return x;
}

public void establecerY(int valorY)
{
y=valorY;
}
public int obtenerY()
{
return y;
}
public String toString()
{
return"[" + obtenerX() + "," + obtenerY() + "]";
}

}

presentado por:

ANGELA PATRICIA GALEANO BEJARANO
JUAN DAVID LANDINEZ BELLO
DIEGO ALEJANDRO RAMIREZ ROJAS

No hay comentarios:

Publicar un comentario