В этой книге методы именуются в соответствии с условными обозначениями, принятыми в литературе по С#. В частности, после имени метода следуют круглые скобки. Так, если методу присвоено имя 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 "