聽起來不像公案,只是想知道是否有關於類和對象的明確規則。我曾經認爲課程是藍圖,而對象則是他們的創造。但如果一個藍圖組合創造了另一個藍圖,那麼後一個藍圖是否也會成爲一個對象?OOP - 如果一個類創建一個類的實例,該實例是否也成爲一個對象?
回答
你的問題似乎有點哲學...... :)「對象」和「實例」在OOP中是非常同義的。
如果我理解正確你的問題,你的疑問是:「的對象仍然是一個對象也如果另一類是不是界定其類型同樣創造出來的?」
答案是「是」,一個實例是繼其類中定義的「樣板」創建一個對象,但有很多原因,你可以以間接的方式實例化一個類,例如靜態方法(例如工廠類的工廠方法),而不是直接使用new
聲明。
如果你想看到一些來,在Java中一個簡單的例子可以是:
public class MyClass {
public MyClass(){}
}
public class MyClassFactory{
public getInstance(){
return new MyClass();
}
}
在這種情況下,例如不受MyClass
直接返回,而是從它的工廠類。然而它也是一個對象......
在我所知的幾乎所有的OO環境中,一個實例是相同的作爲對象。
對象/實例是由客戶端(例如new
)還是由類(例如單件或工廠)創建並不重要。
如果您在類的上下文中討論藍圖,那麼從藍圖創建藍圖就是繼承,而不是實例化。
所以如果一個類的組合創建一個新的類,那將是一個繼承,而不是一個對象? –
@Demetriius,是的,這是基本的想法。 – paxdiablo
- 1. 在一個對象的另一個類中創建實例
- 2. 如何在另一個類中創建一個類的實例
- 3. 如何讓一個類的實例成爲Jena中另一個類的實例?
- 4. 如何創建一個類的實例?
- 5. 我還應該創建一個類嗎?如果它只能有一個實例?
- 6. 當我們實例化一個對象時,是否創建了一個超類的實例?
- 7. 從類創建對象返回另一個類的實例
- 8. 爲「只有一個實例」創建一個Python類?
- 9. 使用類類的一個對象來創建一個新的實例
- 10. 創建類實例作爲另一個類的成員
- 11. 一個類實例
- 12. 創建另一個類的實例
- 13. 創建一個新的類實例
- 14. 創建一個類的靜態實例
- 15. 創建一個經理類的實例
- 16. 創建一個類的實例
- 17. 創建一個域類的一個實例,一個Grails腳本
- 18. 你能否在另一個類中實例化一個對象?
- 19. 是否可以在同一個類中創建一個類的實例?
- 20. 如何從其基類的實例創建一個新對象?
- 21. 從另一個類創建一個類的實例
- 22. PHP OOP - 將對象的實例獲取到另一個類
- 23. 讓一個類成爲另一個類的實例
- 24. Coffeescript創建一個給定該類的對象的類的新實例
- 25. 在Application_Start上創建一個類實例
- 26. 另一個類實例創建的類實例是否可以訪問創建者的成員?
- 27. 是否創建了一個實例?
- 28. Node.js對象實例是否爲每個用戶創建一個對象?
- 29. 實例化類,也有一個說法
- 30. 標準慣例是在該類中創建一個類的實例嗎?
你的問題非常含糊。這是什麼語言?你談論「藍圖的組合創造了另一個藍圖」,這將意味着一個班級創建一個新班級,而不是一個班級的實例,這在所有語言中都不是普遍可行的。 – lanzz
也許我不明白這個問題......如果有一個實例,那麼這個實例就是一個對象。創建它並不重要。任何在堆上實例化的東西都是一個實例,並且是一個對象。 – David
不依賴於語言。一般的OOP。 –