English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Являются ли значения, возвращаемые статическими методами в Java, статическими?

Когда вы возвращаете значение из статического метода по умолчанию, они ни статические, ни экземплярные значения, они просто значения.

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

Но, если вам нужно声明静态 метод, который возвращает значение, переменную метода нельзя声明为静态, поэтому ее нужно вызывать вне класса.

Пример

Предположим, что у нас есть класс под названием Demo-

class Demo{
   int data = 20;
   public Demo(int data){
      this.data = data;
   }
   public int getData(){
      return this.data;
   }
}

В следующем примере Java у нас есть два методаgetObject()соответственноgetInt()Возвращает объект и целое число.

Мы дважды вызываем эти методы в классе и методе. В этом классе мы уже объявили их возвращаемые значения как статические.

В методе, мы используем их (возвращаемые значения методов) в качестве локальных переменных (явно не статических).

public class StaticExample{
   static int data = StaticExample.getInt();
   static Demo obj = StaticExample.getObject();
   public static Demo getObject(){
      Demo obj = new Demo(300);
      return obj;
   }
   public static int getInt(){
      return 20;
   }
   public static void main(String args[]) {
      System.out.println(StaticExample.data);
      System.out.println(StaticExample.obj.data);
      StaticExample obj = new StaticExample();
      System.out.println(obj.getInt());
      Demo demo = obj.getObject();
      System.out.println(demo.data);
   }
}

Результат вывода

20
300
20
300
Вам может понравиться