2.7 Оболочки классов
Пакет java.lang содержит классы-оболочки, соответствуют каждому типу-
примитиву (рисунок 2.23):
Рисунок 2.13 – Оболочки типов
Следующее объявление создает объект Integer, который представляет собой
целое число 40, как объект:
Integer age = new Integer(40);
Объект класса-оболочки, может быть использован в любой ситуации, когда
использование примитивного типа будет недостаточно. Например, некоторые
объекты служат в качестве контейнеров других объектов. Примитивные значения не
могут быть сохранены в таких контейнерах, но объекты-оболочки могут.
Классы-оболочки также содержат статические методы, которые помогают
48
управлять ассоциированными с ними типами. Так, например, класс Integer содержит
метод, чтобы преобразовать целое число, которое хранится в String в значение типа
int:
num = Integer.parseInt(str);
Классы-оболочки также содержат полезные и нужные константы. Так,
например, у класса Integer есть константы:
MIN_VALUE
и
MAX_VALUE
которые
содержат самое маленькое и самое большое значения типа int.
Автоупаковка.
Автоупаковка –
это автоматическое преобразование примитивного значения к
соответствующему объекту обертки
Integer obj;
int num = 42;
obj = num;
Присваивание
создает
соответствующий
объект
Integer.
Обратное
преобразование (называется распаковка) и. также происходит автоматически, по мере
необходимости.
2.8 Инкапсуляция в Java.
Мы можем взять один из двух представлений объекта:
-
внутреннее, это когда детали переменных и методов класса, который
определяет его;
-
внешние – сервисы или описание того, что объект содержит и как объект
взаимодействует с остальной частью системы.
С внешней точки зрения, объект представляет собой инкапсулированную
сущность, предоставляя набор конкретных услуг по взаимодействию с ним. Эти
услуги определяют интерфейс объекта. Один объект (так называемый клиент) может
использовать другой объект с помощью услуг, которые он предоставляет.
Клиент объекта может потребовать его услуги (вызывать его методы), но он не
должен знать о том, как эти услуги осуществляются. Мы должны сделать трудным,
если не вообще невозможным для клиента доступ к переменным объекта напрямую.
То есть, объект должен быть самоуправляемым.
49
Инкапсулированный объект (рисунок 2.14) можно рассматривать как черный
ящик - его внутренняя работа скрыта от клиента. Клиент вызывает методы
интерфейса объекта, которые управляют данными экземпляра класса.
Рисунок 2.14– Инкапсулируемый объект
Достарыңызбен бөлісу: |