Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Для определения методов используется следующий формат:
возвращаемый-тип идентификатор-метода (параметры)
{
тело-метода
}
Возвращаемый-тип определяет тип данных, которые возвращает метод при вызове (возвращаемый ответ на сообщение). Если метод не возвращает никакого значения, то возвращаемый-тип имеет значение void. Идентификатор-метода определяет имя метода, а параметры – список параметров, которые необходимо передать методу при его вызове. Параметры в списке отделяются друг от друга запятыми и каждый параметр имеет следующий вид:
тип идентификатор
где тип определяет тип параметра, а идентификатор – имя параметра (область действия этого имени – только внутри тела метода). Если параметры отсутствуют, после идентификатора-метода указываются пустые скобки.
Тело-метода содержит операторы, реализующие действия, выполняемые данным методом.
Если тип возвращаемого значения не void, в теле метода должен быть хотя бы один оператор
return выражение;
где тип выражения должен совпадать с типом возвращаемого значения. Этот оператор возвращает результат вычисления выражения в точку вызова метода.
Если тип возвращаемого значения – void, возврат из метода выполняется либо после выполнения последнего оператора тела метода, либо в результате выполнения оператора
return;
(таких операторов в теле метода может быть несколько).
Пример объявления метода, возвращающего значение типа int – сумму двух своих параметров типа int:
int sum(int a, int b)
{
int x;
x = a + b;
return x;
}
(тело цикла можно также записать с помощью одного оператора: return a + b).
При вызове метода, например, sum(5, 3), параметры 5 и 3 передаются в метод, как значения соответственно a и b, и оператор вызова метода sum(5, 3)– заменяется значением, возвращаемым методом (8).
В отличие от языка C, в котором тип параметра, задаваемого при вызове, приводится к типу параметра в объявлении функции, тип задаваемого параметра в Java должен строго соответствовать типу параметра в объявлении метода, поэтому вызов метода sum(1.5, 8) приведет к ошибке при компиляции программы.
В языке Java в пределах одного класса можно определить два или более методов, которые совместно используют одно и то же имя, но имеют разное количество параметров. Когда это имеет место, методы называют перегруженными, а о процессе говорят как о перегрузке метода (method overloading).
Когда метод вызывается, то по количеству параметров и/или их типам среда выполнения Java определяет, какую именно версию перегруженного метода надо вызывать (тип возвращаемого значения во внимание не принимается, хотя, в принципе, он тоже может отличаться у разных версий перегруженных методов).
Например, метод
double sum(double a, double b)
{
double x;
x = a + b;
return x;
}
вместе с объявленным ранее методом int sum(int a, int b)составляют пару перегруженных методов и при вызове sum(5, 8) будет вызван первый метод, а при вызове sum(5.0, 8.0) будет вызван второй метод.
По умолчанию метод, как и переменная, доступен только классам в том же пакете (наборе классов), что и исходный класс. Если перед возвращаемым типом задан модификатор доступа public, то метод является глобальным и доступен любым объектам, а модификатор private означает, что метод доступен в том классе, в котором он был объявлен, т.е. метод инкапсулирован в данном классе.
В программе на языке Java можно использовать методы, реализация которых, выполнена во внешнем файле, в программе написанном на языке C/C++. Для этого перед определением метода (но без тела метода) указывается модификатор native, например:
native int CalcTotal();
Дата публикования: 2015-02-03; Прочитано: 386 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!