Page 16 - 4657
P. 16
Методи, що використовують сполучення імен, не
обов'язково повинні бути конструкторами. У наступному
прикладі в клас Point додані два методи distance. Функція
distance повертає відстань між двома крапками. Одному зі
сполучених методів як параметри передаються координати
крапки х и у, іншому ж ця інформація передається у виді
параметра об'єкта Point.
class Point { int х, у;
Point(int х, int у) {
this.x = х;
this. y = y;
}
double distance(int х, int у) {
int dx = this.x - х;
int dy = this.у - у;
return Math.sqrt(dx*dx + dy*dy);
}
double distance(Point p) {
return distance(p.x, p.y);
} }
class PointDist {
public static void main(String args[]) {
Point p1 = new Point(0, 0);
Point p2 = new Point(30, 40);
System.out.println("p1 = " + pi.x + ", " + p1.y);
System.out.println("p2 = " + p2.x + ", " + p2.y);
System.out.println("p1.distance(p2) = " +
p1.distance(p2));
System.out.println("p1.distance(60, 80) = " +
p1.distance(60, 80));
} }
Зверніть увагу на те як у другій формі методу distance для
одержання результату викликається його перша форма. Нижче
приведений результат роботи цієї програми:
С:\> java PointDist
р1 = 0, 0
р2 = 30, 40
р1.distance(p2) = 50.0
14