У Java методи визначають поведінку класів і об'єктів. Розуміння різниці між статичними методами та методами екземплярів є важливим для написання чистого та ефективного коду.
Що таке статичний метод?
А статичний метод належить класу, а не будь-якому конкретному об'єкту.
- Можна викликати без створення екземпляра класу.
- Оскільки статичні методи є специфічними для будь-якого об’єкта, вони можуть отримати доступ лише до статичних членів (даних і методів) і не можуть отримати доступ до нестатичних елементів.
import java.io.*; class Geeks { // static method public static void greet() { System.out.println('Hello Geek!'); } public static void main(String[] args) { // calling the method directily greet(); // using the class name Geeks.greet(); } }
Вихід
Hello Geek! Hello Geek!
Пояснення: Наведений вище приклад показує, що статичний метод greet() у класі Geeks може викликати статичні методи без створення об’єкта. У основному методі ми не створюємо об’єкт класу Geek, ми викликаємо метод безпосередньо за назвою класу, яке є Geeks, а потім ми друкуємо вихідні дані.
Що таке метод екземпляра?
Ан Метод екземпляра належить об'єкту.
- Необхідно створити екземпляр класу для виклику.
- Може отримати доступ до змінних екземплярів, інших методів екземплярів і статичних членів класу.
- Мати доступ до
thisпосилання який вказує на поточний об'єкт.
import java.io.*; class Test { String n = ''; // Instance method public void test(String n) { this.n = n; } } class Geeks { public static void main(String[] args) { // create an instance of the class Test t = new Test(); // calling an instance method in the class 'Geeks' t.test('GeeksforGeeks'); System.out.println(t.n); } }
Вихід
GeeksforGeeks
Пояснення: Наведений вище приклад показує, як використовувати метод екземпляра в Java. Ми створюємо об’єкт класу Test і викликаємо метод test для встановлення значення, а потім друкуємо результат.
Різниця між статичним методом і методом екземпляра
У наведеній нижче таблиці перераховано основні відмінності між статичними методами та методами екземплярів у Java.
особливості | Статичний метод | Метод екземпляра |
|---|---|---|
Визначення | Створено за допомогою ключового слова static і отримано без створення об’єкта. заблоковані контакти | Вимагає виклику об’єкта свого класу. |
Доступ | Доступ лише до статичних змінних і методів. | Може мати доступ як до статичних, так і до екземплярів. |
| Не можна використовувати це ключове слово в статичних методах. | Можна використовувати ключове слово this для посилання на поточний об’єкт. |
Перевизначити | Не підтримує поліморфізм часу виконання | Підтримує поліморфізм часу виконання |
Розподіл пам'яті | Завантажується один раз на клас | Кожен об’єкт має свою копію |