Начинаем программировать на языке Java

dinamica.spb.ru

Классы



Классы

Рассмотрим теперь, как описываются основные базовые строительные блоки языка Java - классы. Схема синтаксиса описания класса такова:

[Модификаторы] class ИмяКласса [extends ИмяСуперкласса] [implements ИменаИнтерфейсов]

{

Данные класса; Методы; }

где:

Модификаторы - ключевые слова типа static, public и т.п., модифицирующие поведение класса по умолчанию;

ИмяКласса - имя, которое вы присваиваете классу;

ИмяСуперкласса - имя класса, от которого наследуется ваш класс;

ИменаИнтерфейсов - имена интерфейсов, которые реализуются данным классом (об этом в следующем занятии).

Типичный пример класса мы уже приводили ранее. Это класс аплета, выводящего строку на экран.

Схема описания методов класса сродни описанию простых функций в языках C и C++:

[Модификаторы] ВозвращаемыйТип ИмяМетода (Список Параметров)

{ [Тело Метода] }

В показанном ранее примере описан всего один общедоступный метод Paint, возвращающий тип void и принимающий один параметр graph типа Graphics.

Как и в C++, в классах Java имеются конструкторы. Их назначение полностью совпадает с назначением аналогичных методов C++. Конструкторы могут быть перегружены (overload), т. е. в одном классе может быть несколько конструкторов, отличающихся передаваемыми параметрами.

В отличие от C++ в языке Java предусмотрен единственный способ распределения памяти - оператором new. В отношении выделения блоков памяти во многом действуют те же правила, что и в C++. Но есть и исключение: в Java имеется возможность динамического задания имени создаваемого класса, как говорится, "на лету":

ClassVar = new ("Class" + "Name");

Здесь операцией конкатенации (объединения) строк создается новая строка "ClassName", которая передается оператору new в качестве параметра. В свою очередь, new создает класс с именем ClassName типа Object (каждый раз, когда тип создаваемого объекта не указан, предполагается тип Object). По мнению автора, разработчики Java позаимствовали операцию конкатенации строк "+" из языка программирования Pascal. Кстати, о типе Object. Это базовый тип для любого класса в Java (заимствовано из идеологии языка SmallTalk). Даже когда вы, создавая новый класс, явно не указываете его предка, предполагается, что это класс Object.




Начало  Назад  Вперед



Книжный магазин