Итак, мы установили, что класс – это описательный шаблон, на основе которого в процессе выполнения программы создается объект класса. В состав объекта класса входят поля и методы, описанные в классе.

Поля – это переменные разных типов, включая ссылки на объекты других классов.

Методы – это именованные блоки команд, выполняемые при вызове метода и предназначенные для обработки полей объекта и внешних переменных.

Поля и методы, описанные в классе, называют членами класса. Запомните это определение.

Поля также часто называют свойствами объекта. В случае с газонокосилкой примерами свойств могут служить название марки, мощность двигателя, количество оборотов, количество топлива в баке. Если марка и мощность это постоянные свойства, то количество оборотов и количество топлива – изменяемые свойства, которые характеризуют мгновенное состояние объекта, но могут меняться с течением времени.

Также у косилки есть методы «завести», «косить», «заглушить». Газонокосилка должна реагировать на нажатие регулятора оборотов, поэтому в метод «косить» мы должны передать аргумент, показывающий силу нажатия на регулятор: косить (силаНажатия). Метод получит аргумент и при помощи внутренних команд преобразует его в заданное число оборотов. Если мы используем готовый класс, то обычно не вникаем в реализацию методов. Нам достаточно знать описание функциональности метода и требования к аргументам.

При желании вы можете придумать множество других примеров, наглядно демонстрирующих главное достоинство ООП – максимальную схожесть с интуитивным механизмом мышления в реальной жизни. Мы, сами того не сознавая, разбиваем окружающий мир на объекты и постоянно используем методы и свойства.

Теперь закончим лирическое отступление и обсудим реализацию классов и объектов в языке Java.

6.2 Описание класса и создание объектов

Описание класса начинается с ключевого слова class, после которого следует имя класса и размещается в блоке из фигурных скобок:

class имя {

// Описание класса

}

Рассмотрим пример описания класса, который состоит только из полей и не содержит методы.


Листинг 6.1 Пример класса, содержащего только поля

// Описание пользовательского класса

class MyFields {

// Поля класса

int data;

char letter;

}

// Описание класса с главным методом программы

// Шаблон описания автоматически создается средой NetBeans

class Listing6_1 {

// Главный метод

public static void main {

// Создаем объект класса MyFields

MyFields demo = new MyFields ();

// Присваиваем значения полям

demo. data = 1234;

demo. letter = «B»;

// Выводим значения полей на печать

System.out.println («Число: "+demo. data);

System.out.println («Буква: "+demo. letter);

}

}

В этом примере описан пользовательский класс MyFields, который состоит только из двух полей – целочисленного и символьного. Пока это лишь описание, мы не можем обращаться к полям. На основе описания класса создан объект (экземпляр класса) с именем demo. Теперь мы можем обращаться к полям объекта, присваивать им значения и считывать их. Иными словами, класс – это описание, а объект класса осязаемая сущность, которой можно манипулировать. Мы можем создать в программе несколько объектов одного и того же класса и присвоить им разные имена. Для обращения к полю объекта сначала указывают имя объекта, и через точку имя поля.

Теперь опишем класс, который содержит только методы (листинг 6.2). При описании метода кроме блока исполняемых команд необходимо указать тип возвращаемого результата, имя метода и список аргументов. Если метод не возвращает результат, то идентификатором типа является ключевое слово void.