Объекты
Порождение экземпляров класса
Процесс создания объектов из класса называется инстанцированием. Объект является экземпляром класса. Объект создается на основе класса как формы и является экземпляром абстракции, которую представляет класс. Объект должен быть создан до того, как он будет использоваться в программе. В Java манипуляции с объектами производятся через объектные ссылки (также называемые ссылочными значениями или просто ссылками). Процесс создания объектов обычно включает следующие шаги.
- Объявление переменной для хранения ссылки на объект.
Это включает объявление ссылочной переменной соответствующего класса для хранения ссылки на объект.
//Объявление двух ссылочных переменных, которые будут обозначать два разных объекта.
//а именно два стека символов.
CharStack stack1, stack2;
2. Создание объекта.
Это включает использование оператора 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. приведена каноническая форма, в которой имя ссылочной переменной, обозначающей объект, является префиксом к имени класса, а разделителем имен служит двоеточие «:».
Рис. 1.2. Нотация UML для объектов
Стандартное обозначение объектов