3.8.1.
Constructores y
destructores.
Constructores y destructores
Constructor es un:
Mtodo que inicializa el objeto en su creacin.
Se llama automticamente cuando se crea un
objeto.
Su nombre es igual que el de la clase y no tiene
tipo de retorno.
Java proporciona un constructor sin parmetros
por defecto que deja de estar disponible cuando
se aade algn constructor.
Constructores y destructores
Destructor es un:
Es un mtodo perteneciente a una
clase que es ejecutado de forma
automtica cuando un objeto es
destruido. Java no soporta los
destructores.
Constructores y destructores en
herencia
En principio se hereda todo menos:
Constructor y destructor
Aunque no se heredan ni el constructor ni el
destructor de la clase base, cuando se crea o se
destruye un objeto de la clase derivada se invocan
automticamente los de la clase base. Se usa el
constructor por defecto (es decir sin parmetros).
Constructores y destructores en
herencia
Antes ejecutarse el cuerpo de un
constructor se debe llamar a su
constructor base.En
base Java se utiliza la
palabra reservada super.
public Rectangulo(int x,int y,int ancho,int
alto) {
super(x,y);
this.ancho=ancho;
this.alto=alto;
}
Constructores y destructores en
herencia
Al contrario que con los constructores,
una funcion destructor de una clase
derivada se ejecuta antes que el
destructor de la clase base. (los
destructores no se heredan).
Ejemplo :
Constructores y destructores en
herencia
Cuando creamos un
class Punto{ class Tripleta extends objeto con:
private int x; Punto { Tripleta t = new Tripleta (1, 2,
private int y; int z; 3);
public Punto () { public Tripleta() {
x=0; cambiarX(0);
y=0; cambiarY(0); Se llama al constructor
} z = 0; con parmetros, con
public Punto (int x, int } parmetros de Tripleta.
y){ public Tripleta(int vx,
this.x=x; int vy, int vz) {
this.y=y; cambiarX(vx); Una mejora a este
} cambiarY(vy);
z = vz; }
mtodo sera:
public int darX(){return
x;}
public int darY(){return public Tripleta(int vx, int vy, int
y;} int darZ() { return z; } vz) {
public void cambiarX void cambiarZ(int val) super (vx,vy);
(int val) {x=val;} { z = val; }
public void cambiarY }
z = vz;
(int val) {y=val;} }
}