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
   11   12   13   14   15   16   17   18   19   20   21