JavaRush/Java блог/Архив info.javarush/Конструкторы, процесс создания объекта
MariaM
24 уровень

Конструкторы, процесс создания объекта

Статья из группы Архив info.javarush
участников
Интересный момент с Интуита: можно использовать this не только как обращение к полям объекта класса, но и как обращение к конструктору (который вообще-то не имеет имени и извне доступен только с помощью ключевого слова new): public class Vector { private int vx, vy; protected double length; public Vector(int x, int y) { super(); vx=x; vy=y; length=Math.sqrt(vx*vx+vy*vy); } public Vector(int x1, int y1, int x2, int y2) { super(); vx=x2-x1; vy=y2-y1; length=Math.sqrt(vx*vx+vy*vy); } } можно записать короче: public class Vector { private int vx, vy; protected double length; public Vector(int x, int y) { super(); vx=x; vy=y; length=Math.sqrt(vx*vx+vy*vy); } public Vector(int x1, int y1, int x2, int y2) { this(x2-x1, y2-y1); //можно использовать даже this(), если существует такой конструктор в этом классе!!! } } Также первой строкой любого конструктора должно идти обращение к конструктору родительского объекта (super() ). Если такой строки нет, то компилятор по умолчанию ее добавляет с пустыми параметрами. Но! Если у родительского объекта нет конструктора с пустыми параметрами, то произойдет ошибка компиляции. Соответственно, создание любого объекта происходит как инициализация всех родителей, а затем возвращение ссылки на итоговый объект.
Комментарии
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
У этой страницы еще нет ни одного комментария