2014-01-19 119 views
0

我正在學習Java,讓我感到驚訝的是你不會創建一個類的對象。例如:爲什麼你不需要在Java中創建對象?

class helloworld{ 
    public static void main(String[] args){ 
    System.out.println("Hello world!"); 
    } 
} 

我不明白的是,我一直認爲一個類的對象藍圖,而在這裏你沒有創建一個對象,程序簡單地從類中運行。是否創建了一個從隱式運行main方法的對象?我沒有完全說這句話,並假設我錯過了一些理解 - 有人可以解釋嗎?

+0

這正是'static'關鍵字的作用。 –

+0

你*會*在Java中創建大量對象。這恰好是程序的入口點,它將啓動對象創建代碼。 – chrylis

+0

該類被加載到內存中。但它的實例不是作爲main創建的()是靜態的..它只需要類而不是類的實例... – TheLostMind

回答

4

「作爲對象藍圖的類」是描述現實的Java 101方法。它有助於教你什麼是類和對象,但這不是全部的事實。

類也是靜態代碼和數據的持有者,它們獨立存在,獨立於任何類實例。您可以將其視爲一種名稱空間的全局數據。

在您的例子中,main方法本身是這樣的靜態方法,它可以在沒有現有對象被執行,並System.out指存在於它自己的一個對象,連接到一個靜態變量在類System

+0

準確而明確的答案 – Keerthivasan

+0

+1必須通過幾次才能閱讀它,但我想我現在明白了 - 感謝您及時的回覆! – user2521439

0

如果您在java中只使用靜態方法和變量,那麼該類的所有對象共享相同的變量和方法,您不必創建對象並調用。 另外主要的方法是運行代碼的入口點

0

你在java中創建對象。 static關鍵字顯示變量,方法或嵌套類屬於類/超類,而不屬於對象。主要的方法被聲明爲靜態的,以便它可以在運行時被訪問;它不是一個對象的一部分,它是這個類的一部分。 JVM在運行時查找主要方法。

0
  • 公共意味着它可以來自任何類的靜態

  • 靜態訪問意味着你不必創建對象或其他文字沒有必要的 的new和你所問的有關

  • 表示它不會返回值
相關問題