04-01-2013, 14:35
(04-01-2013, 14:06)Rosa escribió:[Para ver los enlaces debes registrate]
Tengo dos dudas de la práctica. La primera es de la clase Vector. No entiendo por qué cuando te pide un constructor que toma como argumentos dos objetos de la clase Punto, se pone:
origen=a.clonar();
extremo=b.clonar();
y en el anterior constructor también se pone extremo=a.clonar().
¿El a.clonar() en extremo y después en origen, es el mismo?
Tampoco sé si me he explicado muy bien...
Y la otra es que, en el método
public double getX(){
return origen.getX();
}
me aparece este error: "Cannot invoke getX() on the primitive type doble" Y no sé cómo arreglarlo.
Si alguien me ayuda
Bien Rosa, intentaré explicarme lo mejor que pueda.
En la clase vector hay varios constructores, es decir, que no compares unos con otros, porque en unos se emplean nombres que si los comparas con otros tienden a confusión. Es decir, a la pregunta "¿El a.clonar() en extremo y después en origen, es el mismo? ", la respuesta es no, no es el mismo, solo que los llamé de la misma manera. Con mas detalle:
En este constructor:
Código:
public Vector (Punto a){
origen = new Punto (0,0);
extremo = a.clonar();
}
Existe otro constructor:
Código:
public Vector (Punto a, Punto b){
origen = a.clonar();
extremo = b.clonar();
}
Bien, respecto a la otra duda...
El método está correcto, la causa del error pueden ser 2 cosas, que no hayas invocado bien el método o que el método de getX() de la clase punto no esté bien definido. Por tanto, mira si está llamando bien al metodo getX() desde el main. Un ejemplo:
Código:
public static void main(String[] args) {
Vector a = new Vector (new Punto(2,3), new Punto(4,5));
double x = a.getX();
System.out.println(x);
}
Si te lanza error todo apunta a que no está bien definido el getX() de la clase punto que debería estar así:
Código:
public double getX(){
return x;
}
Bueno, espero haberte ayudado