2013-11-29 4 views
0

Это моя точка класса:Aliasing внутри конструктора - класса Point,

public class Point 
{ 
    private int _x; 
    private int _y; 

    public Point(Point other) 
    { 
     _x = other._x; 
     _y = other._y; 
    } 

} 

Внутри точки конструктор мне нужно сделать что-то еще, чтобы избежать наложения спектров или то, что я сделал это хорошо?

+0

Рассмотрим уважая стандартные соглашения об именах Java, а не предваряя переменные с '_'. Кроме того, почему бы вам не протестировать его, а не спросить нас? –

+0

Я уже тестирую его, но он всегда хорош здесь. Другие мнения – user2976270

+0

FYI, это называется [shadowing] (http://docs.oracle.com/javase/specs/jls/se7/html/jls-6.html#jls -6.4), а не сглаживание. – yshavit

ответ

2

Ваш код должен быть в порядке. Лично мне нравится использовать this в конструкторах для ясности, но это вопрос стиля:

public Point(Point other) 
{ 
    this._x = other._x; 
    this._y = other._y; 
} 
+0

И внутри метода установки, который задает точку, мне нужно сделать что-то вроде этого? -> \t public void setCityCenter (Point cityCenter) \t { \t \t _cityCenter = новый пункт (cityCenter); \t} – user2976270

+0

Вы ** можете **, но так как ваша реализация 'Point' является неизменной, это будет избыточно - просто сохраните' _cityCenter = cityCenter; '. – Mureinik

Смежные вопросы