Составители:
Рубрика:
14
Где же должно происходить создание экземпляров классов? Как пра-
вило, экземпляры классов создаются в методах других классов. Рас-
смотрим пример использования класса Hello, приведенный в листинге
2.3.1. Для этого придется описать новый класс «одноразового» типа.
Листинг 2.3.1
class HelloDemo{
public static void main(String[] args){
//Создадим экземпляр класса Hello и свяжем его с
переменной h.
//Тип переменной h – Hello (!):
Hello h=new Hello();
//Вызовем метод sayHello():
h.sayHello();
}
}
Что получилось в результате исполнения класса HelloDemo? То же,
что и при исполнении класса HelloWorld:
Листинг 2.3.2
java HelloDemo
Hello, world!
В чем же преимущество «объектного» подхода? В том, что свойст-
ва объектов (то есть, значения их переменных) можно менять. Измене-
ние переменных экземпляра позволяет изменять поведение методов
экземпляра. Рассмотрим следующую версию класса HelloDemo, класс
HelloDemoA (см. листинг 2.3.3).
Листинг 2.3.3
class HelloDemoA{
public static void main(String[] args){
Hello h=new Hello();
h.sayHello();
//Изменим значения переменных экземпляра:
h.greeting=”Здорово”;
15
h.person=”мужики”;
//И снова вызовем метод sayHello():
h.sayHello();
}
}
В результате исполнения получим:
Листинг 2.3.4
java HelloDemoA
Hello, world!
Здорово, мужики!
То есть, не изменяя класса Hello, но только «настраивая» нужным
образом его экземпляр, можно получить другой результат. Это свойст-
во экземпляров дает возможность использовать их как набор настраи-
ваемых библиотечных функций. Адаптируемость экземпляров – зна-
чительное преимущество объектно-ориентированных языков про-
граммирования.
2.4 Создание объектов
Создание объектов классов – ключевой момент программирования
на Java. По умолчанию предполагается, что любой класс будет исполь-
зоваться в виде объектов. Основной (но не единственный) способ соз-
дания экземпляров классов – это применение оператора new с конст-
руктором класса. Рассмотрим внимательно третью строку листинга
2.3.3 (или 2.3.1):
Hello h=new Hello();
Эта инструкция к выполнению трех отдельных операций:
9 Создание
объекта класса Hello;
9 Объявление переменной типа Hello;
9 Связывание переменной типа Hello с вновь созданным
экземпляром класса Hello.
Оператор new требует наличия конструктора класса. Конструктор
класса представляет собой снабженный параметрами именованный
Страницы
- « первая
- ‹ предыдущая
- …
- 6
- 7
- 8
- 9
- 10
- …
- следующая ›
- последняя »