0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Из чего состоит метод - было рассказано в предыдущем уроке. Углубимся в некоторые детали.</p>
1
<p>Из чего состоит метод - было рассказано в предыдущем уроке. Углубимся в некоторые детали.</p>
2
<h2>Аргументы методов</h2>
2
<h2>Аргументы методов</h2>
3
<blockquote><p>Часто аргументы называют параметрами метода.</p>
3
<blockquote><p>Часто аргументы называют параметрами метода.</p>
4
</blockquote><p>Аргументы метода - это те данные, с которыми метод будет работать. Они могут быть любого типа.</p>
4
</blockquote><p>Аргументы метода - это те данные, с которыми метод будет работать. Они могут быть любого типа.</p>
5
<p>Уверен, Вы подметите, что метод может работать и с полями класса. Но поля класса видны всем остальным членам класса, а аргументы текущего метода видны только в рамках тела этого метода.</p>
5
<p>Уверен, Вы подметите, что метод может работать и с полями класса. Но поля класса видны всем остальным членам класса, а аргументы текущего метода видны только в рамках тела этого метода.</p>
6
<p>Рассмотрим на таком примере:</p>
6
<p>Рассмотрим на таком примере:</p>
7
<p>В данном примере, метод printExternalMessage видит обе ссылки с именем message: поле класса и собственный аргумент. Ввиду коллизии имен приходится использовать ключевое слово this, чтобы явно указать ссылку, к которой обращаемся в коде.</p>
7
<p>В данном примере, метод printExternalMessage видит обе ссылки с именем message: поле класса и собственный аргумент. Ввиду коллизии имен приходится использовать ключевое слово this, чтобы явно указать ссылку, к которой обращаемся в коде.</p>
8
<p>Метод printInternalMessage видит ссылку с именем message только как поле класса Foo. Но ничего не знает о ссылке с именем message, которая находится внутри метода printExternalMessage. Как и о любых других локальных ссылках, которые могут быть объявлены в методе printExternalMessage.</p>
8
<p>Метод printInternalMessage видит ссылку с именем message только как поле класса Foo. Но ничего не знает о ссылке с именем message, которая находится внутри метода printExternalMessage. Как и о любых других локальных ссылках, которые могут быть объявлены в методе printExternalMessage.</p>
9
<h2>Сколько у метода может быть аргументов?</h2>
9
<h2>Сколько у метода может быть аргументов?</h2>
10
<p>Аргументов у метода может быть разное количество. Минимально - ноль. Такой метод ничего не принимает на вход. Обычно аргументы метода перечисляются через запятую: void methodName(Type1 arg1, Type2 arg2, int a, int b). Особенно если они разных типов.</p>
10
<p>Аргументов у метода может быть разное количество. Минимально - ноль. Такой метод ничего не принимает на вход. Обычно аргументы метода перечисляются через запятую: void methodName(Type1 arg1, Type2 arg2, int a, int b). Особенно если они разных типов.</p>
11
<p>У метода может быть переменное число аргументов. То есть, когда один и тот же метод может принимать то один, то два, то десять аргументов. Но эти аргументы должны быть строго одного типа! Обозначается это так: void methodName(Type1... argsName). Благодаря этому можно создать, например, метод sum который суммирует любое количество чисел (в пределах возможностей компьютера и типа int):</p>
11
<p>У метода может быть переменное число аргументов. То есть, когда один и тот же метод может принимать то один, то два, то десять аргументов. Но эти аргументы должны быть строго одного типа! Обозначается это так: void methodName(Type1... argsName). Благодаря этому можно создать, например, метод sum который суммирует любое количество чисел (в пределах возможностей компьютера и типа int):</p>
12
<p>Под капотом java превратит int... numbers в массив. С массивами Вы познакомитесь в четвертом модуле. Запоминайте эти базовые "пазлы" синтаксиса java. Постепенно они проявят общую картину.</p>
12
<p>Под капотом java превратит int... numbers в массив. С массивами Вы познакомитесь в четвертом модуле. Запоминайте эти базовые "пазлы" синтаксиса java. Постепенно они проявят общую картину.</p>
13
<h2>Перегрузка методов</h2>
13
<h2>Перегрузка методов</h2>
14
<p>Перегрузка методов - это объявление нескольких методов в одном классе с идентичными именами. Различия состоят только в количестве и/или типе аргументов в этих методах. Например:</p>
14
<p>Перегрузка методов - это объявление нескольких методов в одном классе с идентичными именами. Различия состоят только в количестве и/или типе аргументов в этих методах. Например:</p>
15
<p>Java распознает метод не только по идентификатору (имени) но и по аргументам.</p>
15
<p>Java распознает метод не только по идентификатору (имени) но и по аргументам.</p>
16
<p>Перегрузка методов - один из способов поддержки полиморфизма в Java.</p>
16
<p>Перегрузка методов - один из способов поддержки полиморфизма в Java.</p>
17
<h2>Результаты работы метода</h2>
17
<h2>Результаты работы метода</h2>
18
<p>Результатом работы метода является то, что он возвращает в место своего вызова. Например, метод int sum(int a, int b) обязан вернуть результат типа int. Результат работы этого метода можно использовать в месте вызова этого метода. Пример в коде:</p>
18
<p>Результатом работы метода является то, что он возвращает в место своего вызова. Например, метод int sum(int a, int b) обязан вернуть результат типа int. Результат работы этого метода можно использовать в месте вызова этого метода. Пример в коде:</p>
19
<h2>return</h2>
19
<h2>return</h2>
20
<p><strong>return</strong>- это ключевое слово, которое завершает работу метода именно в том месте, где оно написано в теле текущего метода. Кроме этого, return возвращает результат выражения, следующего за ним, в место откуда был вызван текущий метод. Например в коде:</p>
20
<p><strong>return</strong>- это ключевое слово, которое завершает работу метода именно в том месте, где оно написано в теле текущего метода. Кроме этого, return возвращает результат выражения, следующего за ним, в место откуда был вызван текущий метод. Например в коде:</p>
21
<p>метод будет завершен в конце, после всех обозначенных задач над ним, в теле этого метода. Но если мы поменяем расположение return в этом методе вот так:</p>
21
<p>метод будет завершен в конце, после всех обозначенных задач над ним, в теле этого метода. Но если мы поменяем расположение return в этом методе вот так:</p>
22
<p>, то метод sum будет всегда выдавать результат 0. А все что после слова return в его теле - будет просто игнорироваться.</p>
22
<p>, то метод sum будет всегда выдавать результат 0. А все что после слова return в его теле - будет просто игнорироваться.</p>
23
<p>Слово return можно применять и в void методах, для преждевременного завершения их работы, если нужно. Например так:</p>
23
<p>Слово return можно применять и в void методах, для преждевременного завершения их работы, если нужно. Например так:</p>
24
<h2>Полезные ссылки</h2>
24
<h2>Полезные ссылки</h2>
25
<ul><li><a>Методы в Java - Oracle</a></li>
25
<ul><li><a>Методы в Java - Oracle</a></li>
26
<li><a>Методы в Java</a></li>
26
<li><a>Методы в Java</a></li>
27
<li><a>Использование ключевого слова this</a></li>
27
<li><a>Использование ключевого слова this</a></li>
28
<li><a>Визуализатор Java программы</a></li>
28
<li><a>Визуализатор Java программы</a></li>
29
</ul>
29
</ul>