Процесс создания объектов из класса называется инстанцированием. Объект является экземпляром класса. Объект создается на основе класса как формы и является экземпляром абстракции, которую представляет класс. Объект должен быть создан до того, как он будет использоваться в программе. В Java манипуляции с объектами производятся через объектные ссылки (также называемые ссылочными значениями или просто ссылками). Процесс создания объектов обычно включает следующие шаги.
Объявление переменной для хранения ссылки на объект.
Это включает объявление ссылочной переменной соответствующего класса для хранения ссылки на объект.
// Объявление двух ссылочных переменных, которые будут обозначать два разных объекта, а именно два стека символов
CharStack stack1, stack2;
Создание объекта.
Это включает использование оператора new
вместе с вызовом конструктора, чтобы создать экземпляр класса.
// Создание двух разных стеков символов
stack1 = new CharStack(10); // длина стека 10 символов
stack2 = new CharStack(5); // длина стека 5 символов
Оператор new
возвращает ссылку на новый экземпляр класса CharStack
. Эта ссылка может быть присвоена ссылочной переменной соответствующего типа. Каждый объект уникален и имеет свою собственную копию полей, объявленных в описании класса. Два стека, обозначенные как stack1
и stack2
, имеют свои собственные поля stackArray
и topOfStack
.
Цель вызова конструктора с правой стороны от оператора new
в том, чтобы проинициализировать недавно созданный объект. В нашем частном случае для каждого нового экземпляра класса CharStack
, созданного оператором new
, конструктор создает массив символов. Длина массива задается значением аргумента конструктора. Конструктор также инициализирует поле topOfStack
.
Объявление и инстанцирование можно объединить.
CharStack stack1 = new CharStack(10),
stack2 = new CharStack(5);
На рис. 1.2 показана нотация UML для объектов. Графическое изображение объекта похоже на изображение класса. На рис. 1.2. приведена каноническая форма, в которой имя ссылочной переменной, обозначающей объект, является префиксом к имени класса, а разделителем имен служит двоеточие «:».
Члены классов: поля и методы | Объектные ссылки |