double ustawXY(double wspX, double wspY)
{
return this.doublewspX,
this.doublewspY;
}
Co to jest? :D W metodzie masz ustawić pola klasy na pewne - podane jako parametry metody - dane.
void ustawXY(double wspX, double wspY)
{
this.x = wspX;
this.y = wspY;
}
Chodzi tutaj o to, że klasa ma dwa pola prywatne i każdy obiekt, który zostanie stworzony na jej podstawie, ma dostęp do tych pól. Na przykład:
Punkt nowyPunkt = new Punkt();
I teraz jeżeli wywołasz metodę ustawXY na obiekcie nowyPunkt, musisz podać dwie wartości double, i to będzie to wyglądało tak:
nowyPunkt.ustawXY(0.5, 0.8);
To pola obiektu nowyPunkt będą miały wartości x = 0.5, a y = 0.8
This wskazuje na tzw. parametr niejawny. Pod spodem będzie to nowyPunkt.x = 0.5, nowyPunkt.y = 0.8
______________________________
Tutaj:
void ustawXY(Punkt punkt)
{
this.punkt = punkt;
}
Nazwa metody sugeruje, że masz ustawić x i y, a więc:
void ustawXY(Punkt punkt)
{
this.x = punkt.pobierzX();
this.y = punkt.pobierzY();
}
To należy wywalić:
void ustawXY(double x, double y)
{
this.x = x;
this.y = y;
}
gdyż przeciążenie polega na tym, że tworzysz metodę o takiej samej nazwie, lecz innych parametrach. Istnieje w klasie już metoda, która nazywa się ustawXY i przyjmuje dwa parametry typu double.
To:
String toString()
{
return x;
return y;
}
Jest złe. Metoda ma zwracać String, więc można skorzystać z automatycznego generowania tej metody, na przykład:
@Override
public String toString() {
return "Punkt{" +
"x=" + x +
", y=" + y +
'}';
}
Co to ma być :D :
System.out.println(x.toString());
System.out.println(y.toString());
Zamień na:
System.out.println(punkt.toString());
Poprawiona metoda obliczOdleglosc:
double obliczOdleglosc(double x, double y)
{
if(x>=y)
{
return x-y;
}
else
return y-x;
}
Nie działa ona tak, jak powinna. Dlaczego sprawdzasz, czy x jest większe od y? W poleceniu jest napisane, że metoda ma obliczać odległość punktu, od punktu podanego jako parametr wywołania metody, czyli powinno być: double obliczOdleglosc(Punkt punkt).
double obliczOdleglosc(Punkt punkt)
{
double xLength = this.x - punkt.pobierzX();
double yLength = this.y - punkt.pobierzY();
return Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));
}
double obliczOdleglosc()
{
double xLength = this.x;
double yLength = Mthis.y;
return Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));
}