В этой книге методы именуются в соответствии с условными обозначениями, принятыми в литературе по С#. В частности, после имени метода следуют круглые скобки. Так, если методу присвоено имя GetVal
GetVal().
Такая форма записи помогает отличать имена методов от имен переменных при чтении книги.Ниже приведена общая форма определения метода:
// тело метода
}
где
private
) в пределах того класса, в котором он объявляется. Мы будем пока что объявлять методы открытыми (public
), чтобы вызывать их из любой другой части кода в программе. Затем void.
Далее Как пояснялось выше, методы класса, как правило, манипулируют данными класса и предоставляют доступ к ним. С учетом этого напомним, что в приведенных выше примерах в методе Main()
Building
, просто потому, что так легче понять сам характер вычисления. Ведь площадь на одного человека зависит от значений в полях Area
и Occupants
, инкапсулированных в классе Building
. Следовательно, данное вычисление может быть вполне произведено в самом классе Building
. Кроме того, вводя вычисление площади на одного человека в класс Building
, мы тем самым избавляем все программы, пользующиеся классом Building,
от необходимости выполнять это вычисление самостоятельно. Благодаря этому исключается ненужное дублирование кода. И наконец, добавление в класс Building
метода, вычисляющего площадь на одного человека, способствует улучшению его объектно-ориентированной структуры, поскольку величины, непосредственно связанные со зданием, инкапсулируются в классе Building
.Для того чтобы добавить метод в класс Building,
Building
, содержащий метод AreaPerPerson(),
который выводит площадь, рассчитанную на одного человека в конкретном здании.// Добавить метод в класс Building.
using System;
class Building {
public int Floors; //количество этажей
public int Area; //общая площадь здания
public int Occupants; //количество жильцов
// Вывести площадь на одного человека,
public void AreaPerPerson() {
Console.WriteLine(" " + Area / Occupants +
" приходится на одного человека");
}
}
// Использовать метод AreaPerPerson().
class BuildingDemo {
static void Main() {
Building house = new Building();
Building office = new Building();
// Присвоить значения полям в объекте house,
house.Occupants = 4;
house.Area = 2500;
house.Floors = 2;
// Присвоить значения полям в объекте office,
office.Occupants = 25;
office.Area = 4200;
office.Floors = 3;
Console.WriteLine("Дом имеет:\n " +
house.Floors + " этажа\n " +
house.Occupants + " жильца\n "