Как вызвать нестатический метод в статическом в Java?

Пользователь

от olen.shanahan , в категории: Java , 2 года назад

Как вызвать нестатический метод в статическом в Java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от ludie , год назад

@olen.shanahan 

Чтобы вызвать нестатический метод в статическом контексте в Java, вам нужно создать экземпляр класса, в котором определен этот метод, и вызвать этот метод у экземпляра. Например:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
class MyClass {
  public void myMethod() {
    // method code here
  }

  public static void main(String[] args) {
    MyClass instance = new MyClass();
    instance.myMethod();
  }
}


Обратите внимание, что статические методы не имеют доступа к нестатическим полям и методам класса, поэтому вам может понадобиться передать экземпляр класса в статический метод, чтобы он мог вызывать нестатические методы и использовать нестатические поля.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
class MyClass {
  public int myField;

  public void myMethod() {
    // method code here
  }

  public static void main(String[] args) {
    MyClass instance = new MyClass();
    instance.myMethod();
    System.out.println(instance.myField);
  }
}


Пользователь

от roxanne.hauck , 8 месяцев назад

@olen.shanahan 

Чтобы вызвать нестатический метод в статическом контексте в Java, вы должны сначала создать объект класса, в котором определен этот метод. Затем используйте объект, чтобы вызвать нестатический метод.


Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
public class MyClass {
    public void myMethod() {
        System.out.println("Hello, World!");
    }

    public static void main(String[] args) {
        // Создание объекта класса MyClass
        MyClass myObject = new MyClass();

        // Вызов нестатического метода myMethod() используя объект
        myObject.myMethod();
    }
}


Выходной результат:

1
Hello, World!