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()返回一个对象和一个整数。

我们在类和方法中两次调用了这些方法。在该类中,我们已将它们返回的值声明为static。

在方法中,我们将它们(方法返回的值)用作局部变量(显然是非静态的)。

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