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

更新於:2019-08-05

3K+ 閱讀

啟動您的 職業生涯

完成課程,獲得認證

開始學習
廣告
© . All rights reserved.