Ich versuche den Unterschied zwischen 2 Methoden zu verstehen, die den gleichen Namen haben. Dies ist der Code, den ich zu verstehen versuchen ...Was bedeutet ein Objektvariablentyp?
public class Test {
public static void main(String[] args) {
MyPoint p1 = new MyPoint();
MyPoint p2 = new MyPoint(10, 30.5);
System.out.println(p1.distance(p2));
System.out.println(MyPoint.distance(p1, p2));
}
}
class MyPoint {
.....
}
public double distance(MyPoint secondPoint) {
return distance(this, secondPoint);
}
public static double distance(MyPoint p1, MyPoint p2) {
return Math.sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y));
}
Könnte jemand bitte den Unterschied zwischen den 2 distance()
Methoden erklären. Was bedeutet der Typ MyPoint
eigentlich? Warum hat 1 der Methoden ein einzelnes MyPoint
Objekt, während die andere Methode 2 MyPoint
Objekte hat?
Peinlich zu fragen, aber warum in dem Parameter kann es den Klassennamen aber nicht den Typ wie String oder int enthalten? –
Es kann entweder enthalten. Wenn es so etwas wie ein int oder ein boolescher Wert ist, bezieht sich das auf einen primitiven Datentyp, wie einfache Zahlen oder wahr/falsch. Wenn es etwas wie ein String, ein MyPoint oder ein anderer Klassenname ist, bedeutet es, dass es sich um einen Objekttyp handelt, der komplexer sein kann als ein einfacher primitiver Datentyp – wattostudios
Ich weiß, wo ich falsch verstanden habe. Vielen Dank. –