Итак, прежде всего нам надо выбрать уровень абстракции, необходимый для правильного описания реального информационного процесса. Затем следует выделить объекты, участвующие в этом процессе, и установить связи между этими объектами. Как это сделать? Опишите процесс словами и проанализируйте получившиеся фразы. "Завод выпускает автомобили". Здесь два объекта — завод и автомобиль. Производственнотехнические характеристики завода составят набор полей объекта "Завод", а процесс выпуска автомобиля будет описан в виде набора методов объекта "Завод".
Пример из другой области: "Преподаватель читает учебный курс". Полями объекта "Преподаватель" будут его фамилия, имя и отчество, научно-педагогический стаж, квалификация, ученая степень, выпущенные им учебники и методические пособия. Методами "Преподавателя" будут такие действия, как "читать", "писать", "повышать квалификацию", "проводить консультацию", "принимать зачет". Полями объекта "Учебный курс" будут его название, программа, количество часов, перечень учебных пособий. Будет ли объект "Учебный курс" обладать какими-то методами или в этом объекте будут только поля? Какие действия выполняет "Учебный курс"? По-видимому, единственным действием объекта "Учебный курс" будет предоставление своих полей другим объектам, значит, нужны методы доступа к полям объекта.
Таким образом, если в словесном описании процесса вам потребовалось сформулировать какое-то понятие, то оно и будет кандидатом на оформление его в виде объекта. Существительные, описывающие это понятие, будут полями объекта, а глаголы — методами будущего объекта.
В объектно-ориентированных языках модель информационного процесса записывается в виде одного или нескольких
Поля, в которых объект будет хранить необходимую ему информацию, описываются массивами, переменными и константами. Количество переменных и их типы выбираются так, чтобы в наибольшей степени охарактеризовать объект. Они называются
Методы обработки информации, используемые объектом, описываются процедурами и функциями. Они называются
Кроме полей и методов в классе можно описать и
Вот набросок описания автомобиля:
class Automobile{
int maxVelocity; // Поле, содержащее наибольшую скорость автомобиля.
int speed; // Поле, содержащее текущую скорость автомобиля.
int weight; // Поле, содержащее вес автомобиля.
// Прочие поля...
void moveTo(int x, int y){
// Метод, моделирующий перемещение автомобиля в точку (x, y).
// Параметры метода x и y — уже не поля, а локальные переменные. int a = 1; // a — локальная переменная, а не поле.
// Тело метода. Здесь описывается способ перемещения автомобиля / / в точку (x, y)
}
// Прочие методы класса...
}
В Java нет вложенных процедур и функций, в теле метода нельзя описать другой метод.
После того как описание класса закончено, можно создавать конкретные объекты, называемые
Automobile lada2110, fordScorpio, oka;
Затем операцией new определяются сами объекты, под них выделяется оперативная память, ссылка получает адрес этого участка в качестве своего значения.
lada2110 = new Automobile(); fordScorpio = new Automobile(); oka = new Automobile();