1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Java, Совмещение Методов

Тема в разделе "Java", создана пользователем Aegis, 8 янв 2012.

  1. Aegis

    Aegis New Member

    Репутация:
    0
    Регистрация:
    8 янв 2012
    Сообщения:
    1
    Симпатии:
    0
    Добрый день!
    Начал изучать Java и возникли трудности с пониманием чтения некоторых конструкций. В одной из книг описан такой пример:

    Код:
    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));
    
    } }
    Последние 2 строчки меня озадачили, как правильно нужно читать p1.distance(p2) и p1.distance(60, 80)? Как компилятор интерпретирует эту формулировку?
    Буду признателен за разъяснение!
     
  2. LuMee

    LuMee Well-Known Member

    Репутация:
    0
    Регистрация:
    2 май 2006
    Сообщения:
    477
    Симпатии:
    0
    Это, в общем-то, вызов ранее описанных методов. Скажем, p1.distance(p2) следует трактовать так: вызов метода класса Point.distance(Point) для объекта этого класса, на который ссылается переменная p1; в качестве параметра метода передается ссылка на другой объект класса Point - p2.
    Рекомендую поподробнее почитать, что такое вообще фукнция в программировании.
     
  3. denis90

    denis90 Гость

    Репутация:
    0
    Код:
    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);
    
    }
    Почитайте про Перегруженные методы(функции)

    Кратко: Это функции которые имеют одинаковые имена , но
    принимают разные типы аргументов
     
Загрузка...

Поделиться этой страницей