logo

Статичен метод срещу метод на екземпляр в Java

В Java методите дефинират поведението на класове и обекти. Разбирането на разликата между статичните методи и методите на екземпляри е от съществено значение за писането на чист и ефективен код.

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справка който сочи към текущия обект.
Java
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 ключова дума

Не може да използва това ключова дума в статични методи.

Може да използва ключовата дума this за препратка към текущия обект.

Замяна

Не поддържа полиморфизъм по време на изпълнение

Поддържа полиморфизъм по време на изпълнение

Разпределение на паметта

Зарежда се веднъж на клас

Всеки обект има свое копие


Създаване на тест