Объявление метода с таким же именем как у класса называется
конструктором. Конструктор выполняется при создании объекта из класса.
Процесс создания объектов из классов называется
инстанцированием. Объект - это экземпляр класса. Объект - это конкретный экземпляр той абстракции, которую представляет собой класс.
При создании объекта возвращается
ссылочное значение (reference value). Ссылочное значение отсылает к объекту.
Переменная метит место в памяти, куда может быть сохранено значение.
Ссылка на объект (object reference) это переменная, которая хранит ссылочное значение. В Java объектами можно манипулировать только посредством их ссылочных значений или, что то же самое, посредством ссылок, которые содержат ссылочные значения.
Несколько ссылок могут ссылаться на один и тот же объект, т.е. они хранят ссылочное значение одного и того же объекта. Такие ссылки называются
псевдонимами. Объектом можно управлять через любой из его псевдонимов.
Когда на объект больше нет ссылок, то его память при необходимости забирается и перераспределяется для других объектов. Этот процесс называется
автоматическая сборка мусора. В Java эту заботу берет на себя среда исполнения.
Каждый созданный объект имеет свою копию полей определенных в классе. Поля объекта называются
переменными экземпляра (instance variables). Значения переменных экземпляра конституциируют
состояние объекта (state). Два разных объекта могут иметь одно и то же состояние, если их переменные экземпляра имеют одни и те же значения. Методы объекта определяющие его поведение называются
методами экземпляра (instance methods). Эти методы принадлежат каждому объекту класса.
Имплементация этих методов находится в общем использовании у всех объектов класса. Переменные и методы экземпляра, которые принадлежат объектам называются общим термином
члены экземпляра (instance members).
В некоторых случаях члены должны принадлежать только классу, т.е. они не должны быть частью ни одного из экземпляров класса. Члены, которые принадлежат только классу называются
статическими членами (static members). Поля объявленные с ключевым словом static называются
статическими переменными (static variable). Статическая переменная инициализируется при загрузке класса в среду исполнения. Также существуют
статические методы (static methods), которые принадлежат скорее к классу, чем к объектам этого класса.
Объекты взаимодействуют друг с другом через передачу сообщений. В Java это делается вызовом метода у объекта посредством бинарного оператора точки.
Вызов метода содержит: получателя сообщения, метод для запуска, аргументы метода. Метод запускаемый у получателя может вернуть информацию отправителю посредством одиночного возвращаемого значения. Вызываемый метод должен быть определен для объекта, иначе будет ошибка компиляции.
Dot (.) нотация может использоваться вместе с ссылкой для доступа к полям объекта. При использовании dot нотации учитывается
доступность (accessibility) члена. Члены в классе имеющие уровень доступности private не доступны извне класса.
Краткое резюме по терминологии членов класса:
- Члены экземпляра: переменные и методы экземпляра. Они могут быть доступны или запущены только через ссылку на объект.
- Переменная экземпляра - это поле аллоцированное при инстанцировании класса (т.е. при создании экземпляра класса). Также называется non-static полем или просто полем, когда контекст очевиден.
- Метод экземпляра. Объекты одного класса разделяют между собой имплементацию методов принадлежащих к экземпляру класса.
- Статические члены: статические переменные и методы класса. Они могут быть доступны и запущены посредством имени класса или ссылки на объект.
- Статическая переменная - это поле аллоцированное при загрузке класса. Оно принадлежит классу и не принадлежит ни одному из объектов класса. Также называется статическим полем или переменной класса.
- Статический метод - принадлежит классу и не принадлежит ни одному из объектов класса. Также называется методом класса.