В Java методите дефинират поведението на класове и обекти. Разбирането на разликата между статичните методи и методите на екземпляри е от съществено значение за писането на чист и ефективен код.
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. Създаваме обект от тестовия клас и извикваме тестовия метод, за да зададем стойност и след това отпечатваме изхода.
Разлика между статичен метод и метод на екземпляр
Следващата таблица изброява основни разлики между статичните методи и методите на екземпляри в Java.
Характеристики | Статичен метод | Метод на екземпляра |
|---|---|---|
Определение | Създаден чрез ключовата дума static и извлечен без създаване на обект. | Изисква обект от неговия клас да бъде извикан. |
Достъп | Достъп само до статични променливи и методи. | Има достъп както до статични, така и до потребителски членове. |
| Не може да използва това ключова дума в статични методи. | Може да използва ключовата дума this за препратка към текущия обект. |
Замяна | Не поддържа полиморфизъм по време на изпълнение | Поддържа полиморфизъм по време на изпълнение |
Разпределение на паметта | Зарежда се веднъж на клас | Всеки обект има свое копие |