Con la tecnología de Blogger.

Composición, clase punto

En el lenguaje de programación Java, hay dos formas de reutilizar el código, mediante la composición y mediante la herencia. La composición significa utilizar objetos dentro de otros objetos. Por ejemplo, un applet es un objeto que contiene en su interior otros objetos como botones, etiquetas, etc. Cada uno de los controles está descrito por una clase.

Vamos a estudiar una nueva aproximación a la clase Rectangulo definiendo el origen, no como un par de coordenadas x e y (números enteros) sino como objetos de una nueva clase denominada Punto.

La clase Punto

La clase Punto tiene dos miembros dato, la abscisa x y la ordenada y de un punto del plano. Definimos dos constructores uno por defecto que sitúa el punto en el origen, y otro constructor explícito que proporciona
las coordenadas x e y de un punto concreto.

public class Punto {
int x;
int y;
//funciones miembro
}

El constructor explícito de la clase Punto podemos escribirlo de dos formas

public Punto(int x1, int y1) {
x = x1;
y = y1;
}

Cuando el nombre de los parámetros es el mismo que el nombre de los miembros datos escribimos.

public Punto(int x, int y) {
this.x = x;
this.y = y;
}

this.x que está a la izquierda y que recibe el dato x que se le pasa al constructor se refiere al miembro dato, mientras que x que está a la derecha es el parámetro. this es una palabra reservada que guarda una refrencia
al objeto propio, u objeto actual. Tendremos ocasión a lo largo del curso de encontrar esta palabra en distintas situaciones.

La función miembro desplazar simplemente cambia la posición del punto desde (x, y) a (x+dx, y+dy). La función desplazar cuando es llamada recibe en sus dos parámetros dx y dy el desplazamiento del punto y actualiza las coordenadas x e y del punto. La función no retorna ningún valor.

public void desplazar(int dx, int dy){
x+=dx;
y+=dy;
}

Para crear un objeto de la clase Punto cuyas coordenadas x e y valgan respectivamente 10 y 23 escribimos.

Punto p=new Punto(10, 23);

Para desplazar el punto p 10 unidades hacia la izquierda y 40 hacia abajo, llamamos desde el objeto p a la función desplazar y le pasamos el desplazamiento horizontal y vertical.

p.desplazar(-10, 40);

El código completo de la clase Punto, es el siguiente:

public class Punto {
int x = 0;
int y = 0;
public Punto(int x, int y) {
this.x = x;
this.y = y;
}
public Punto() {
x=0;
y=0;
}
void desplazar(int dx, int dy){
x+=dx;
y+=dy;
}
}
Share on Google Plus

Sobre Rafa

Soy un apasionado de las nuevas técnologias, Internet, los videojuegos, la cultura japonesa y de USA.
    Blogger Comment
    Facebook Comment

0 comentarios:

Publicar un comentario

Gracias por comentar ;-)