Материал предоставлен https://it.rfei.ru

Классы

Перед вступлением на путь Java важно понимать основную терминологию и концепции объектно-ориентированного программирования (ООП). В этом разделе акцент делается на обзоре основных концепций, а не на полном описании. Более детальное описание концепций будет произведено в последующих уроках.

Java поддерживает создание большого количества разных типов исполняемых элементов: приложений, апплетов, сервлетов. В этом разделе рассматриваются основные элементы Java-приложения. Старая поговорка о том, что совершенство создается практикой, остается в силе при изучении языка программирования. Чтобы облегчить программирование и выполнение упражнений, в этом разделе будет дан обзор компиляции и выполнения Java-приложений.

Классы

Один из основных способов, при помощи которого мы управляем сложностью, — это абстракция.

Абстракция помогает указать основные свойства и поведение объекта, которые отличают его от других объектов. Суть ООП и заключается в моделировании абстракции с использованием классов и объектов. Наиболее тяжелая часть в этом процессе — найти верную абстракцию.

Класс указывает на категорию объектов и выступает в качестве формы для создания таких объектов. Класс моделирует абстракцию для объектов, ее представляющих, при помощи описания свойств и поведения. Объект проявляет свойство и поведение, определенное его классом. Свойства объекта класса также называются атрибутами и в Java задаются полями.

Поле в описании класса является переменной, которая может хранить значение, которое представляет конкретное свойство. Поведения объекта класса также известны как операции и в Java определяются при помощи методов. Поля и методы в описании класса собирательно называют членами.

Важное различие проводится между контрактом и реализацией, которые класс поддерживает для своих объектов. Так, контракт определяет, какие службы, а реализация определяет, как эти службы поддерживаются классом. Клиенты (т. е. другие объекты), чтобы знать службы объекта, нуждаются только в знании контракта объекта, а не его реализации.

Как пример, реализуем разные версии класса, моделирующего абстракцию стека, который заталкивает и выталкивает символы. Стек будет использовать массив для хранения символов и поле для указания положения верхнего элемента. На рис. 1.1 показан класс CharStack с использованием нотации “Унифицированного языка моделирования” (UML), который моделирует эту абстракцию.

Рис. 1.1. Поля и имена методов

(а) Расширенная форма

(б) Сокращенная форма

Урок 1. Введение в программирование на JAVAЧлены классов: поля и методы