Этот оператор осуществляет вывод величины площади на одного человека, которая получается путем деления общей площади здания (переменнойArea)на количество жильцов (переменнуюOccupants).А поскольку у каждого объекта типаBuildingимеется своя копия переменныхAreaиOccupants,то при вызове методаAreaPerPerson() в вычислении используются копии этих переменных, принадлежащие вызывающему объекту.

МетодAreaPerPerson() завершается закрывающейся фигурной скобкой. Когда встречается эта скобка, управление передается обратно вызывающей части программы.

Далее проанализируем внимательно следующую строку кода из методаMain ().

house.AreaPerPerson() ;

В этой строке вызывается методAreaPerPerson() для объектаhouse.Это означает, что методAreaPerPerson() вызывается относительно объекта, на который ссылается переменнаяhouse,и для этой цели служит оператор-точка. Когда методAreaPerPerson() вызывается, ему передается управление программой. А по его завершении управление передается обратно вызывающей части программы, выполнение которой возобновляется со строки кода, следующей после вызова данного метода.

В данном случае в результате вызоваhouse .AreaPerPerson() выводится площадь на одного человека в здании, определенном в объектеhouse.Аналогично, в результате вызоваoffice .AreaPerPerson() выводится площадь на одного человека в здании, определенном в объектеoffice.Таким образом, при каждом вызове методаAreaPerPerson() выводится площадь на одного человека для указанного объекта.

В методеAreaPerPerson() особого внимания заслуживает следующее обстоятельство: обращение к переменным экземпляраAreaиOccupantsосуществляется непосредственно, т.е. без помощи оператора-точки. Если в методе используется переменная экземпляра, определенная в его классе, то делается это непосредственно, без указания явной ссылки на объект и без помощи оператора-точки. Понять это нетрудно, если хорошенько подумать. Ведь метод всегда вызывается относительно некоторого объекта его класса. Как только вызов произойдет, объект становится известным. Поэтому объект не нужно указывать в методе еще раз. В данном случае это означает, что переменные экземпляраAreaиOccupantsв методеAreaPerPerson() неявно ссылаются на копии этих же переменных в том объекте, который вызывает методAreaPerPerson ().

ПРИМЕЧАНИЕ

Перейти на страницу:

Похожие книги