36 lines
2.8 KiB
Markdown
36 lines
2.8 KiB
Markdown
- Подпрограмма - отдельно вызываемая часть программы для выполнения какой-то подзадачи
|
|
- Процедура - подпрограмма, выполняющая действия
|
|
- Функция - подпрограмма, вычисляющая значение
|
|
- Метод - подпрограмма, связанная с классом или объектом.
|
|
```Java
|
|
/*
|
|
modifiers return_type name (par_type par_name) {}
|
|
*/
|
|
```
|
|
- Аргументы передаются в метод по значению
|
|
- Вызывающий метод кладет в стек копии значений аргументов
|
|
- Внутри метода эти значения доступны по именам параметров
|
|
- Если параметр примитивного типа, передается копия значения
|
|
- Если параметр ссылочного типа, передается копия ссылки.
|
|
- Объект при этом - в куче. Ссылку изменить нельзя, но объект иногда можно
|
|
- Если метод не должен возвращать значение, то тип возвращаемого значения - void
|
|
- Если метод должен возвращать значение определенного типа, то последней инструкцией метода должен быть возврат значения заданного типа с помощью return
|
|
- Для параметров и возвращаемых значений действуют правила приведения типов
|
|
## Сигнатура
|
|
имя функции и параметры образуют сигнатуру
|
|
В сигнатуру НЕ входят: модификаторы, имена параметров, тип возвращаемого значения, тип выбрасываемого исключения
|
|
## Локальные переменные и var
|
|
- Локальные переменные - объявленные внутри блоки или метода
|
|
- var можно использовать для локальных переменных, которые сразу инициализируются
|
|
- var нельзя использовать для массивов
|
|
- var нельзя использовать для параметров метода и задания типа возвращаемого значения в заголовке метода
|
|
- Тип переменной выводится компилятором из ее значения
|
|
## Переменное число аргументов - varargs
|
|
```Java
|
|
void m(int a, int... x) {
|
|
|
|
}
|
|
// m(0)
|
|
// m(0, 1, 2)
|
|
// m(0, new int[]{})
|
|
``` |