Иллюстрированный самоучитель по Java



              

Абстракция - часть 3


Automobile ()

. Это так называемый

конструктор

(constructor) класса, но о нем поговорим попозже.

Поскольку имена полей, методов и вложенных классов у всех объектов одинаковы, они заданы в описании класса, их надо уточнять именем ссылки на объект:

lada2110.maxVelocity = 150; 

fordScorpio.maxVelocity = 180;

oka.maxVelocity = 350;    // Почему бы и нет? 

oka.moveTo(35, 120);

Напомним, что текстовая строка в кавычках понимается в Java как объект класса

String

. Поэтому можно написать

int strlen = "Это объект класса String".length();

Объект "строка" выполняет метод

length()

, один из методов своего класса

string

, подсчитывающий число символов в строке. В результате получаем значение

strlen

, равное 24. Подобная странная запись встречается в программах на Java на каждом шагу.

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

Не кажется ли вам, что класс Automobile сильно перегружен? Действительно, в мире выпущены миллионы автомобилей разных марок и видов. Что между ними общего, кроме четырех колес? Да и колес может быть больше или меньше. Не лучше ли написать отдельные классы для легковых и грузовых автомобилей, для гоночных автомобилей и вездеходов? Как организовать все это множество классов? На этот вопрос объектно-ориентированное программирование отвечает так: надо организовать иерархию классов.




Содержание  Назад  Вперед