Метод у Java — це не що інше, як повторно використовуваний фрагмент коду, який можна виконати на вимогу.
Методи часто називають функціями, і ви помітите, що обидва слова використовуються як синоніми.
Важливість використання методів або функцій
Розробники програмного забезпечення вирішують проблему, розбиваючи її на менші проблеми та вирішуючи їх, щоб вирішити проблему в цілому. Ця ідея призвела до так званої модульної архітектури. У такому підході розробники розбивають код на частини, які можна переміщати та виконувати для вирішення більшої проблеми.
Методи мають перевагу, оскільки їх можна використовувати в різних екземплярах усієї програми. Припустімо, ви хочете створити допоміжний метод для видалення всіх непотрібних пробілів із речення. Чи буде сенс писати логіку кожного разу, коли вона вам потрібна, десь у вашій програмі?
Або має сенс створити метод один раз, а потім використовувати той самий метод з різними входами в кількох місцях вашої програми? Останній, очевидно, кращий і ефективніший.
Мало того, за допомогою модифікаторів доступу в Java ви навіть можете контролювати, які методи фактично доступні для спільного використання в програмі, а які ні. Це також допомагає зробити ваш код більш читабельним, організованим і структурованим.
Типи методів в Java
У Java є два типи методів: визначені користувачем і попередньо визначені методи. Визначені користувачем методи, як випливає з назви, явно визначаються програмістом. Прикладом визначеного користувачем методу може бути:
public int sum(int a, int b) { return a + b; }
З іншого боку, попередньо визначені або вбудовані методи вже існують як частина мови програмування Java. Прикладом вбудованого методу може бути:
String text = "Hello World"; text.toLowerCase();
Тут toLowerCase — це вбудований метод Java, який можна викликати з будь-якої точки коду.
Структура методу в Java
Давайте подивимося на ідеальну структуру методу в Java:
[access_modifier] [return_type] method_name(...parameters) { // method body }
Ці компоненти методу мають бути вказані по порядку. Наприклад, метод не можна визначити перед типом, що повертається, і так само. Давайте дізнаємося про функції кожного з цих компонентів, що утворюють метод, і про те, як вони працюють разом.
#1. Модифікатор доступу
У Java модифікатори доступу — це ключові слова, які визначають видимість методу, класу, інтерфейсу, змінної тощо. Технічно в Java існує п’ять модифікаторів доступу:
- публічний: доступний для всіх класів
- private: доступний лише для класу, до якого він належить
- за замовчуванням: модифікатор доступу за замовчуванням подібний до модифікатора protected, у якому метод доступний лише всередині того самого пакета
- захищений: доступний у підкласах або окремому пакеті
public int sum(a int, b int) { return a + b; }
Тут метод calc має модифікатор доступу як public, тому він буде доступний звідусіль.
#2. Тип повернення
Тип повернення функції визначає тип даних, які повертає функція. Якщо ви не хочете нічого повертати з функції, у такому випадку вкажіть тип повернення void. Ключове слово return не можна використовувати, якщо вказано тип void. Вказівка типу повернення є обов’язковою для визначення функції.
public void log(String text) { System.out.println(text); }
Наведений вище метод нічого не повертає; це просто друк тексту на консоль. Таким чином, тип повернення void.
#3. Назва методу
Він ідентифікує метод у класі та використовується для виклику методу з об’єкта.
class Print { void log(String text) { System.out.println(text); } } Print p = new Print(); p.log("hello world"); // outputs "hello world"
#4. Параметри
Ви можете передавати аргументи методам відповідно до параметрів, визначених у ньому. Наприклад, якщо для методу визначено два параметри, ви можете передати лише два аргументи з відповідними типами даних. І ви повинні передати аргументи в тому порядку, в якому вони визначені.
class Calc { int sum(a int, b int) { return a + b; } } Calc cal = new Calc(); cal.sum(3, 7); // will return 10
#5. Тіло
Тіло методу містить логіку програмування, яка використовується для повернення певного результату. Він виконує функцію, яку повинен виконувати метод. Він укладений у фігурні дужки і часто називається блоком коду.
class Calc { int sum(a int, b int) { return a + b; } }
Тут оператор return у фігурних дужках є тілом методу sum.
Виклик методів у Java
Викликати методи в Java досить просто. Ви можете викликати метод за його іменем з екземпляра класу, в якому він знаходиться.
Статичні методи можуть бути викликані без екземпляра об’єкта класу, в якому він присутній. Нестатичні методи повинні бути строго викликані з екземпляра класу, іншими словами, з об’єкта.
Для статичних методів виклик виглядає так:
class Math { public static int sum(int a, int b) { return a + b; } } public class Main { public static void main(String[] args) { int add = Math.sum(5, 2); System.out.println(add); } }
У наведеному вище коді метод sum у класі Math є статичним методом. І це причина, чому вам не потрібно створювати об’єкт (примірник) класу Math, вам потрібно лише викликати метод із самого класу.
З іншого боку, для нестатичних методів виклик виглядає так:
class Math { public int sum(int a, int b) { return a + b; } } public class Main { public static void main(String[] args) { int add = new Math().sum(5, 2); System.out.println(add); } }
Тут ви створюєте новий об’єкт із класу Math, а потім викликаєте метод sum. Причина цього полягає в тому, що екземпляри нестатичних методів не створюються, доки не буде створено екземпляр класу.
Ось як ви можете викликати метод у Java.
Заключні слова
Не лише в Java, а й у будь-якій мові програмування методи є чудовим способом упорядкувати ваш код і повторно використовувати його в багатьох місцях. Методи є будівельними блоками модульної та компонентної архітектури.
Якщо ви любите Java, дізнайтеся більше про обробку винятків у Java.