Java類對象?
回答
Java類不是一個對象。
但是,每個Java類都有描述它的Class
類的實例。
這些實例是對象。
我認爲這很重要,你的意思是「一個Java類」。 「類」的定義是不是一個對象?其中包含類聲明的源代碼? – 2012-08-16 15:12:58
因此,類「Class」的實例與使用'class'關鍵字創建的類不同。得到它了。 – itdoesntwork 2012-08-16 15:16:26
@MattBall:一個類是一個類型,而不是一個對象。 – SLaks 2012-08-16 15:47:09
每個Java類,即使java.lang.Class
下降從java.lang.Object
。
編輯:
措辭有點模棱兩可。 Java類的實例絕對是對象。班級本身並不能真正成爲對象,因爲除了班級「藍圖」之外,什麼都不存在於記憶中。
該類(您的代碼,甚至是.class文件中的編譯代碼)不是對象。在實例化該類之前,您沒有對象。
例如,Java.lang.String
是一類。 String s = new String("Hello world");
定義了一個String類型的對象。這可能是你教授正在做出的區分。
同樣,這裏「類」這個詞的定義很重要。 – 2012-08-16 15:14:43
同意,這就是爲什麼我指定我的答案指的是'類' – 2012-08-16 15:16:37
Java類不是對象,它們是抽象的。
但是,每個Java類都有一個表示它的類的java.lang.Class
的對應實例。該表示是的一個對象。但是你不應該把這個表示理解爲實際的東西。
這種關係有點類似於音樂和樂譜之間的關係。雖然書面符號代表音樂,但它本身不是音樂。
雖然這種差異很少在實踐中發揮作用,只要你知道你可以做什麼,不能做什麼就可以做到java.lang.Class
對象。
謝謝,這清除了它。編輯:讓我希望每種語言都像Ruby一樣簡單:) – itdoesntwork 2012-08-16 15:17:15
雖然Ruby比Java更復雜得多。 – biziclop 2012-08-16 15:26:18
- 1. Java對象類
- 2. 對象類,java API
- 3. 重用Java類對象的
- 4. 對象[]到類[]中的Java
- 5. Java的xml到對象類
- 6. 對象java類代碼
- 7. Java反射,類對象
- 8. Java:擴展對象類
- 9. Java對象通知父類
- 10. Plain Old Java對象類
- 11. Java:超類數組對象分配有子類數組對象
- 12. Java:給出類對象的泛型類
- 13. Java - 對象內的對象
- 14. Java在不同的對象中使用泛型類對象
- 15. java中配置對象的對象類型
- 16. 將JSON對象轉換爲java類對象
- 17. 如何從父類對象加載子對象的Java
- 18. 從對象數組訪問對象類型方法java
- 19. 基本的Java對象類返回對象爲null?
- 20. Java:如何確定對象數組中的對象的類型?
- 21. 對象在java中構造一類對象
- 22. Java對象的最具體的子類?
- 23. Java中奇怪的對象/類行爲
- 24. Android - 訪問其他類的對象(Java)
- 25. Java對象不是聲明類
- 26. Java中的對象的Serialize超類
- 27. 使用類似java Map的javascript對象?
- 28. Java Runnable訪問一個類的對象
- 29. 類似數組的Java訪問對象
- 30. 的Java正從對象類型
當你問他時,他給你什麼理由? – EJP 2012-08-17 00:24:39
@EJP他說過一個類是一個接口,但我不記得整個事情。 – itdoesntwork 2012-08-18 14:07:18
Java類確實是對象,即使是一種特殊的對象。例如,您可以有任何給定類SomeClass的多個實例:只需創建一個新的ClassLoader並再次加載「SomeClass」您會爲同一個編譯時類獲得不同的實例,可能會使用不同的方法實現。 – 2013-08-16 19:00:53