Vamos a crear la clase Línea. Como bien indica su nombre esta clase nos realizará una linea (podíamos haberla llamado perfectamente vector).
La línea tiene un origen y un fin. Ese origen y ese fin son dos puntos por tanto. Con lo cual si cada punto tiene dos coordenadas, podemos definir una línea mediante 2 puntos o cuatro coordenadas.
//Constructor 1: Crea una línea a partir de dos puntos
Linea(final Punto inicio, final Punto fin)
{
this.inicio = inicio;
this.fin = fin;
}
Como comentábamos arriba hemos creado un constructor que dibuje una línea mediante dos puntos. El punto inicio y el punto fin. Estos dos puntos son constantes y de tipo Punto (como indica el nombre de la clase.)
NOTA: Recordar que el nombre de la clase empieza en mayúsculas
//Constructor 2: Crea una línea a partir de dos parejas de coordenadas
Linea(double xpri, double ypri; double xseg; double yseg)
{
inicio = new Punto (xpri,ypri);
fin = new Punto (xseg, yseg);
}
Ahora hemos creado otro nuevo constructor pero que esta vez recibe 4 parámetros de entrada que son las dos parejas de coordenadas. Este constructor crea el inicio y el fin a partir de un llamada a la clase Punto pasándole 2 parámetros… lo que como hemos visto nos devuelve un punto.
Como se ve, no hace falta definir el tipo de objeto que es inicio y fin porque lo hemos definido arriba. Para hacernos una idea… es como cuando definimos variables. Si ya definimos su tipo, no es necesario volver a definirlo.
//Constructor 3: Crea una copia de la linea
Linea (final Linea oldLinea)
{
inicio = oldLinea.inicio;
fin = oldLinea.fin;
}
Simplemente se crea un constructor que recibe como parámetro una linea “oldLinea” y los valores de inicio y fin se los asigna a la nueva línea.
Ahora si lo deseamos podemos llamar al método longitud() definido en la clase Punto, para calcular la distancia de la línea (la distancia entre los 2 puntos).
//Método1: Calcular la longitud de la línea
double longitud()
{
return inicio.distancia(fin); //Utiliza el método de la clase punto
}
Y además… vamos a ver una nueva forma de mostrar datos por pantalla (Salida) sin usar el System.out.println()
//Método 2: Convierte una línea a cadena
public String toString()
{
return "("+inicio+"):("+fin+")";
}
Al ser un método que ya trae JAVA no es necesario crearlo.
Código Final
Linea.java
class Linea
{
Punto inicio; //Es una variable miembro de tipo Punto
Punto fin; //Es una varieble miembro de tipo Punto
//Constructor 1: Crea una línea a partir de dos puntos
Linea(final Punto inicio, final Punto fin)
{
this.inicio = inicio;
this.fin = fin;
}
//Constructor 2: Crea una línea a partir de dos parejas de coordenadas
Linea(double xpri, double ypri; double xseg; double yseg)
{
inicio = new Punto (xpri,ypri);
fin = new Punto (xseg, yseg);
}
//Constructor 3: Crea una copia de la linea
Linea (final Linea oldLinea)
{
inicio = oldLinea.inicio;
fin = oldLinea.fin;
}
//Método1: Calcular la longitud de la línea
double longitud()
{
return inicio.distancia(fin); //Utiliza el método de la clase punto
}
//Método 2: Convierte una línea a cadena
public String toString()
{
return "("+inicio+"):("+fin+")";
}
}
Usuarios que han visto este tema también han visto...
- Java y XML, JDOM
- Extendiendo el Runtime de Java con nuevos idiomas
- Generación de números aleatorios en Java
- Listar fuentes del sistema
- Funciones recursivas en Java
Información legal | Política de Privacidad | Contacte con nosotros
Otro proyecto de Factoría de Internet. Copyright© 2003-2008 Factoría de Internet S.L.. Todos los derechos reservados.