1. Функції і методи в Java
Ви вже вивчили багато команд у Java, і це означає, що ви можете писати досить складні програми. 10, 20, 30 рядків коду в програмі — не така вона й велика, еге ж?
А от програма на 100+ рядків — уже велика, і розбиратися в її коді досить складно. Чи можна якось спростити написання й читання програм з великим обсягом коду?
Так, і допоможуть нам у цьому методи (функції).
Що ж таке метод? Ну, якщо дуже спростити визначення, то метод — це група команд, яка має унікальне ім'я. Інакше кажучи, ми просто компонуємо декілька команд в одну групу і даємо їй унікальне ім'я. І все — метод готовий.
Приклад:
Без методу | З методом |
---|---|
|
|
У програмі в лівому стовпчику тричі повторюється один і той самий код — ми зробили так спеціально, для прикладу. А в програмі праворуч ми винесли повторюваний код в окремий метод і дали йому унікальне ім'я — printWiFi
.
І замість винесеного коду тричі написали виклик методу printWiFi()
.
Під час виконання програми в лівому стовпчику щоразу під час виконання команди printWiFi()
виконуватимуться всі команди всередині методу printWiFi()
. Ми просто створили нову команду (метод), об'єднавши в одну групу кілька команд.
Будь-який код можна розбити на окремі методи. Це роблять з метою спрощення: вважається, що краще мати багато маленьких методів, ніж один великий. Невдовзі ви будете дивуватися з того, що раніше писали власні програми, але не створювали власних методів.
2. Оголошення методу в Java
Як же все-таки правильно написати свій метод?
Під час оголошення (створення) методу слід враховувати багато нюансів, але почнімо з головного. Як же нам оголосити найпростіший метод? Оголошення простого методу має такий вигляд:
public static void ім'я()
{
код методу
}
де ім'я
— це унікальне ім'я методу, а код методу
— це команди, з яких він складається. Значення слів public
, static
і void
ми розглянемо дещо пізніше.
Після створення методу ми можемо викликати його в інших наших методах. Виклик має такий вигляд:
ім'я();
де ім'я
— це унікальне ім'я методу, який ми хочемо викликати й команди якого хочемо виконати в місці виклику.
Дійшовши до команди, що містить виклик нашого методу, програма просто перейде в цей метод, виконає всі його команди, повернеться до початкового методу і продовжить виконання.
Як ви вже, напевно, здогадалися, більша частина вивчених нами команд — це просто методи, написані іншими програмістами, щоб полегшити нам життя: System.out.println()
, Thread.sleep()
тощо.
Код методу може містити виклики інших методів:
Код | Примітка |
---|---|
|
Викликаємо метод print10TimesWiFi() Оголошуємо метод print10TimesWiFi Викликаємо метод printWiFi() 10 разів у цикліОголошуємо метод printWiFi Виводимо на екран текст:
|
3. Факти про методи
А от іще кілька фактів про методи:
Факт 1. Метод — це завжди частина класу.
Метод можна оголосити тільки в класі. Метод не можна оголосити всередині іншого методу. Метод не можна оголосити за межами класу.
Факт 2. Ім'я методу не несе сакрального змісту
Неважливо, як називати методи — це ні на що не впливає. Метод main — це такий же метод, як і всі інші. Просто таке ім'я вибрали для методу, з якого Java-машина починає виконання програми. Нічого магічного в ньому немає.
Факт 3. Порядок розташування методів у класі не має значення
Ви можете написати свої методи в класі в будь-якому порядку — це жодним чином не вплине на виконання програми. Приклад:
Код | |
---|---|
|
|
Факт 4. Змінні всередині одного методу ніяк не пов'язані зі змінними інших методів
Що відбувається у Вегасі, залишається у Вегасі. А змінні, оголошені всередині методу, залишаються всередині цього методу.
У двох сусідніх методах можна оголосити однакові змінні, і ці змінні жодним чином не будуть пов'язані одна з одною.
4. Імена методів
Вже давно відомо, що дві найскладніші проблеми в програмуванні — це як правильно підібрати назву методу і як назвати змінну.
Насправді вже існує майже ціла наука про те, як правильно називати методи. І в кожній мові програмування є свої стандарти. У Java зазвичай керуються такими принципами:
Принцип 1. Ім'я методу має коротко описувати те, що цей метод робить.
Тоді програміст, який читає ваш код, з імені методу зможе здогадатися, що саме цей код робить, і не буде змушений щоразу дивитися на код всередині методів. Та й призначення методів запам'ятати легше.
Згадайте той-таки Thread.sleep()
— «приспати програму» або Scanner.nextInt()
— «зчитати наступне ціле число». Зручно ж, правда?
Принцип 2. Ім'я методу може складатися з кількох слів.
Однак на цей випадок є кілька обмежень:
- Пробіли в імені методу використовувати не можна: усі слова пишуться разом.
- Кожне слово пишеться з великої літери, окрім першого.
- Ім'я методу завжди пишеться з маленької літери.
Згадайте той-таки метод print10TimesWiFi
. Що означає його ім'я? «написати 10 разів слово WiFi». Багато слів в імені методу писати не треба: ім'я має відбивати саму суть.
Такий стандарт написання імен називається CamelCase (Camel — верблюд. Великі літери схожі на верблюжі горби).
Принцип 3. Ім'я методу починається з дієслова.
Метод завжди щось робить, тому перше слово в назві методу — це завжди дія.
Невдалі імена для методу: home
, cat
, car
, train
, …;
Хороші імена: run
, execute
, print
, read
, write
, …
Принцип 4. Використовуйте тільки латинські літери й цифри
Java дуже добре підтримує різні мови. Ви можете написати імена змінних, методів і класів хоч російською, хоч китайською — все працюватиме!
Але! Як довго ви вчили б Java, якби назва методу System.out.println()
була китайською? Значно довше, ніж зараз, чи не так? Це по-перше.
А по-друге, над багатьма проектами працюють інтернаціональні команди. Дуже великою кількістю Java-бібліотек користуються програмісти з усього світу.
Тому рекомендовано в іменах методів використовувати тільки латинські літери й цифри.