La clase Rectangulo tiene como miembros dato, el origen que es un objeto de la clase Punto y las dimensiones ancho y alto.
public class Rectangulo {
Punto origen;
int ancho ;
int alto ;
//funciones miembro
}
El constructor por defecto, crea un rectángulo situado en el punto 0,0 y con dimensiones nulas:
public Rectangulo() {
origen = new Punto(0, 0);
ancho=0;
alto=0;
}
El constructor explícito crea un rectángulo situado en un determinado punto p y con unas dimensiones que se le pasan en el constructor
public Rectangulo(Punto p, int w, int h) {
origen = p;
ancho = w;
alto = h;
}
Podemos definir otros constructores en términos del constructor explícito usando la palabra reservada this.
public Rectangulo(Punto p) {
this(p, 0, 0);
}
public Rectangulo(int w, int h) {
this(new Punto(0, 0), w, h);
}
El primero crea un rectángulo de dimensiones nulas situado en el punto p. El segundo, crea un rectángulo de unas determinadas dimensiones situándolo en el punto 0, 0. Dentro del cuerpo de cada constructor se llama al constructor explícito mediante this pasándole en sus parámetros los valores apropiados.
Para desplazar un rectángulo, trasladamos su origen (esquina superior izquierda) a otra posición, sin cambiar su anchura o altura. Desde el objeto origen, llamamos a la función desplazar miembro de la clase Punto.
void desplazar(int dx, int dy) {
origen.desplazar(dx, dy);
}
El código completo de la nueva clase Rectangulo, es el siguiente.
public class Rectangulo {
Punto origen;
int ancho ;
int alto ;
public Rectangulo() {
origen = new Punto(0, 0);
ancho=0;
alto=0;
}
public Rectangulo(Punto p) {
this(p, 0, 0);
}
public Rectangulo(int w, int h) {
this(new Punto(0, 0), w, h);
}
public Rectangulo(Punto p, int w, int h) {
origen = p;
ancho = w;
alto = h;
}
void desplazar(int dx, int dy) {
origen.desplazar(dx, dy);
}
int calcularArea() {
return ancho * alto;
}
}
- Blogger Comment
- Facebook Comment
Suscribirse a:
Enviar comentarios
(
Atom
)
0 comentarios:
Publicar un comentario
Gracias por comentar ;-)