Создание нового экземпляра без использования типа (имени класса) в java - PullRequest
0 голосов
/ 12 февраля 2020

Я нашел этот код. Теперь я озадачен тем, что означает origin = new Point(0, 0);. Если это создание экземпляра / объекта, где ему предшествует тип (имя класса). Если это задание, почему используется new.

public class Rectangle {
    public int width = 0;
    public int height = 0;
    public Point origin;

    //Four constructors
    public Rectangle() {
        origin = new Point(0, 0);
    }

    public Rectangle(Point p) {
        origin = p;
    }

    public Rectangle(int w, int h) {
        this(new Point(0, 0), w, h);
    }

    public Rectangle(Point p, int w, int h) {
        origin = p;
        width = w;
        height = h;
    }

    //A method for moving the rectangle
    public void move(int x, int y) {
        origin.x = x;
        origin.y = y;
    }

    //A method for computing the area of the rectangle
    public int area() {
        return width * height;
    }
}

Ответы [ 2 ]

1 голос
/ 12 февраля 2020

Чтобы ответить на этот вопрос самым простым способом:

Линия origin = new Point(0, 0); в основном устанавливает переменную origin для объекта Point, где x и y оба установлены в 0. Теперь я думаю, что вы запутался, почему это даже там? Сначала нам нужно посмотреть, где это объявлено. У каждого объекта есть конструктор, будь то пустой конструктор, который устанавливает для некоторых переменных значение по умолчанию (как в этом случае!). В нашем случае переменная origin устанавливается в значение по умолчанию внутри конструктора по умолчанию класса Rectangle. Вторая причина, по которой мы это делаем, заключается в том, что в Java вы можете объявить объект без каких-либо аргументов, когда Java видит, что аргументы не заданы, он вызовет конструктор по умолчанию. В конструкторе по умолчанию настоятельно рекомендуется определить важные переменные, которые будут использоваться в объекте. Надеюсь, это поможет! =)

0 голосов
/ 12 февраля 2020

Точка - это тип переменной. Он в основном хранит два значения (x и y). Это простое объяснение.

origin = new Point (0, 0) устанавливает значение переменной origin

, не столь простое объяснение состоит в том, что Point является классом. origin является объектом этого класса, и эта строка запускает конструктор этого класса, который устанавливает значение двух переменных в этом объекте в 0 и 0

...