Взаимодействие методов по управлению
МЕТОДЫ
В различных языках программирования имеются термины, которые по сути означают одно и то же понятие. Например, подпрограмма, подпрограмма-процедура, метод, функция… Все эти термины означают, что в программе содержится некий блок операторов, реализующих законченный алгоритм и оформленный особым образом. Синтаксические конструкции, определяющие подпрограмму (в алгоритмике используется этот термин) позволяют транслятору обрабатывать ее отдельно. Такие модули можно сгруппировать в пользовательских библиотеках и многократно применять, вызывая из других программ. Второй задачей формирования подпрограмм является упорядочение исходного кода. В чем оно заключается? Есть ряд процессов, которые в программе повторяются многократно. Например, задача предполагает формирование двух одномерных массивов, пересылку в третий массив всех четных элементов исходных массивов. Очевидно, что операция вывода массива на экран должна быть выполнена как минимум три раза. Без использования подпрограммы вывода на печать одномерного массива следует трижды повторить в теле программы блок одинаковых операторов для выполнения данного алгоритма. Согласитесь, что такая программа читается трудно.
Итак, мы научимся разрабатывать программы, содержащие подпрограммы, а также пользоваться подпрограммами различных библиотек. Заметим, что поlпрограммы в С# называются методами. С методами математической библиотеки (класс Math) вы уже знакомы.
Определение метода
Метод определяет некоторую процедуру обработки данных. Выполнение программы можно рассматривать как взаимодействие методов с точки зрения двух аспектов:
- по управлению (вызов/возврат)
- по обмену данных (передачи данных через формально-фактические параметры)
Определение метода может быть выполнено только в составе класса. Синтаксис заголовка метода:
<модификаторы>_ТипВозвращаемогоОбъекта Имя (параметры)
{
<локальные переменные> + процедура
}
Определение метода должно содержать:
1. Имя метода
2. Доступ к данному методу со стороны других методов
3. Принадлежность методу конкретному объекту или классу
4. Параметры, которые принимаются методом для обработки и тип возвращаемого результата
5. Собственно процедуру обработки параметров
Например, static int Metod1 (int a, string b).Прочитаем определение метода. Static –определение класса памяти (статический метод). int -тип возвращаемого методом значения. Metod1 – название метода (идентификатор). В скобках формальные параметры (int a, string b), что означает: метод принимает на обработку два параметра – целое число и строку. Как отличить метода? Признаком метода являются круглые скобки. Даже если формальных параметров нет, то скобки все равно нужны. Например, void Main(). Здесь список параметров пустой. Кстати, void используется в тех случаях, когда метод не должен возвращать вычисленного значения. Например, метод вывода на экран матрицы.
Взаимодействие методов по управлению
Методы имеют непосредственный доступ к полям своего класса. Статические методы имеют доступ только к статическим полям и могут вызывать только статические методы. На приведенной ниже схеме Метод1 вызывается через имя объекта, поэтому не может вызвать метод другого класса. Обращаться к методу другого класса можно через имя класса. Пока мы не умеем создавать классы, то будем использовать методы библиотек с доступом через имя класса (Math.Sin(k)) и доступ к собственным методам внутри класса через имя экземпляра.
Класс1 |
Класс2 |
+ Метод1() + Метод2() + Метод3() + Метод4() |
+ Метод1() - Метод2() + Метод3() |
ИмяОбъекта.ИмяМетода |
ИмяКласса.ИмяМетода |
Имя Имя Класса. Метода |
Вызов метода сопровождается выполнением процедуры, определенной методом и возвратом результата в точку вызова. Вернее, на оператор, следующий за оператором вызова метода.