Problema con agregación!

He creado dos clases, la clase Punto.java y Linea.java.
Los atributos de la clase Linea son dos objetos de la clase Punto. Ahora tengo que crear una clase rectángulo cuyos únicos atributos deben ser cuatro lineas de la clase Linea. MI pregunta es : ¿Cómo puedo hacer UN CONSTRUCTOR PARA CREAR UN RECTÁNGULO QUE PASE POR LOS PUNTOS DADOS?
MIs clases son las sig:
public class Punto {
private int x; // Coordenada x
private int y; // Coordenada y
/**
* Constructor de un punto, crea el punto (0,0)
*/
public Punto () {
x = y = 0;
}
/**
* Constructor de un punto a partir de dos números enteros que
* representan las coordenadas del nuevo punto.
* @param x - coordenada x del nuevo punto.
* @param y - coordenada y del nuevo punto.
*/
public Punto (int x, int y) {
this.x = x;
this.y = y;
}
/**
* Constructor de un punto a partir de otro punto.
* @param p - punto a partir del cual se creara el nuevo.
*/
public Punto (Punto p) {
x = p.x;
y = p.y;
}
/**
* Asigna valor a la coordenada x del punto.
* @param nuevaX - nuevo valor para la coordenada x.
*/
public void asignarX(int nuevaX) {
x = nuevaX;
}
/**
* Asigna valor a la coordenada y del punto.
* @param nuevaY - nuevo valor para la coordenada y.
*/
public void asignarY(int nuevaY) {
y = nuevaY;
}
/**
* Regresa la coordenada x del punto.
* @return int - la coordenada x del punto.
*/
public int obtenerX () {
return x;
}
/**
* Regresa la coordenada del punto.
* @return int - la coordenada y del punto.
*/
public int obtenerY () {
return y;
}
PARA LA CLASE LINEA TENGO:
public class Linea{
private Punto p1;
private Punto p2;
/**
*Constructor por omision de la linea que pasa por los puntos (0,0) y (1,1)
*/
Linea(){
p1 = new Punto(0,0);
p2 = new Punto(1,1);
}
/**Constructor de una linea a partir de dos puntos
*@param p1Ini-- punto de origen
*@param p2Ini-- segundo punto
*/
Linea(Punto p1Ini, Punto p2Ini){
p1 = p1Ini;
p2 = p2Ini;
}
/**
*Constructor copia
*@param Linea l -- linea que se toma para crear otra
*/
Linea(Linea l){
p1 = l.p1;
p2 = l.p2;
}
/**
*Metodo para calcular la pendiente de una recta
*@return double -- la pendiente
*/
public double pendiente(){
double divisor = p2.obtenerX() - p1.obtenerX();
//Recta paparalela al eje y
return (divisor != 0)? (p2.obtenerY() - p1.obtenerY())/divisor :Double.POSITIVE_INFINITY;
}
/**
*Calcula la ordenada al origen de la recta dada
*@return la ordenada al origen
*/
public double ordenada(){ //Verificar si es P o D
return p1.obtenerX() == p2.obtenerX()? Double.POSITIVE_INFINITY : p1.obtenerY() - pendiente()*p1.obtenerX();
}
Para mi clase Rectangulo.java
se intentado hacer el constructor pero no me compila.
public class Rectangulo {
//Atributos
private Linea l1;
private Linea l2; //Objetos de la clase Linea.java
private Linea l3;
private Linea l4;
AQUI NO SE COMO HACER MI CONSTRUCTOR:
/**
*Constructor que define el rectángulo que se forma por las lineas que pasan por los
* los puntos l1(0,0) y (20,0), l2 (0,15)
* (20,15), l3 (0,0) y (0,15), l4 (20,0) y (20,15)
*/
     Rectangulo(){
    }

2 respuestas

Respuesta
1
Solamente tienes que crear un constructor que reciba como parámetro dos lineas y ya tienes el rectángulo.
De esta forma:
public Rectangulo(Linea largo, Linea ancho){
     l1 =largo;
     l2 = largo;
     l3 = ancho;
     l4 = ancho
}
Así cuando lo llames ya debes haber creado las lineas largo y ancho del rectángulo
Respuesta
1
¿Qué parámetros debe recibir el constructor de tu clase rectángulo?
Hola gracias por contestar.
Son cuatro lineas: dos para el ancho del rectángulo y dos para el largo, pues con ellas voy a calcular el área, el perímetro y verificar si el rectángulo que construyo el igual a otro.
Tu clase Rectángulo quedaría así:
class Rectangulo {
//Atributos
private Linea ancho1;
private Linea ancho2; //Objetos de la clase Linea.java
private Linea largo1;
private Linea largo2;
Rectangulo(Linea ancho1, Linea ancho2, Linea largo1, Linea largo2){
this.ancho1 = ancho1;
this.ancho2 = ancho2;
this.largo1 = largo1;
this.largo2 = largo2;
}
}

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas