Программирование на Java | Модемы | Дипломы по радиотехнике и связи |
Программирование на языке Java
this в конструкторах
Очередной вариант класса Point показывает, к ак, используя this и совмещение методов, можно строить одни конструкторы на основе других.

class Point {

int х, у;

Point(int х, int у) { this.x = х; this^ = у; }

Point() {

this(-1, -1);

}

В этом примере второй конструктор для завершения инициализации объекта обращается к первому конструктору.

Методы, использующие совмещение имен, не обязательно должны быть кон

структорами. В следующем примере в класс 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

p1.distance(60, 80) = 100.0

< пред след >
вернуться к содержанию
вернуться к списку источников

перейти на главную страницу