В чем разница между 2 конструкторами? - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть конструктор, который получает объекты в качестве параметров функции. У меня есть 2 способа написать это, но я хочу убедиться, что я понимаю разницу между этими двумя способами. Я также хочу знать, какой путь лучше:

public class Line {
    private Point start;
    private Point end;
/**
 * First method: copy the data from each point with get functions
 */
public Line(Point start, Point end) {
    this.start = new Point(start.getX(), start.getY());
    this.end = new Point(end.getX(), end.getY());
}
/**
 * Second method: equal the class variables to the parameters from the function
 */
public Line(Point start, Point end) {
    this.start = start;
    this.end = end;
}

Из того, что я понимаю, в первом методе я выделяю память для каждой точки и копирую данные из объектов.

Во втором методе я указываю на память существующих объектов, и поэтому, если я использую этот конструктор, а в другой функции я изменяю объекты, изменение также появится в строке.

Я думаю, что Первый способ лучше и безопаснее, но мне было интересно, правда ли это. Спасибо!

...