我相信我明白了什麼是構造函數,但對我來說,它似乎只是用於將信息傳遞給另一個類中的方法。那麼爲什麼不直接調用一個方法並提供一個參數呢?我有這個錯誤嗎?構造函數和傳遞參數有什麼區別?
回答
構造函數用於創建對象,而不是普通的方法。無論何時使用new
創建對象,實際上都會調用構造函數。例如:
new MyClass(); //here MyClass() is a constructor with no params
Note:
構造函數聲明的樣子方法聲明,除了 他們所使用的類的名稱,並沒有返回類型
是的,我得到這個,但我所說的是他們ultimatley用於傳遞參數到一個類,然後可以使用該特定類中的所有方法? –
@ChrisLondon如何在不創建對象的情況下設置成員變量的值?如果你有所有的靜態成員,那麼你可以使用簡單的方法。 –
@ChrisLondon:那些「參數」通常最終定義了對象的*狀態*,即「它的本質」或「它是什麼」。他們*可以被認爲是「所有方法的參數」,但這是一個非常狹隘的觀點。 –
如果我的理解right:
構造函數總是被調用的,所以這些屬性必須通過。如果您通過方法傳遞此信息,則不必傳遞它們,因此它們可能會丟失。
是的,類似的東西,除非你有一個空的構造函數或一個沒有你需要的對象函數的所有參數的構造函數。但是你應該以某種方式處理這些情況,或者不允許構造函數缺少必需的參數。 –
無論何時傳遞參數,構造函數都用於初始化對象的新實例。
在構造函數中擁有參數只是一種方法,可以很容易地在對象初始化過程中設置一些初始屬性,對象最可能需要這些初始屬性才能按預期方式工作。但是,如果這些屬性不需要爲實例對象的正確操作進行初始化,那麼更有意義的是不將它們傳遞給構造函數,而是讓其他任何時間通過它們的設置器你需要。
構造函數用於*初始化*對象,在調用構造函數之前創建*。 –
對,謝謝:) – ssantos
- 1. 函數構造函數和原型構造函數有什麼區別?
- 2. 空的構造函數和沒有構造函數有什麼區別
- 3. 爲什麼在通過值傳遞給函數並將值傳遞給另一個構造函數時,構造函數的調用有什麼區別?
- 4. 類變量和構造函數中的參數有什麼區別?
- 5. 配置構造函數參數時,IUnityContainer.Resolve()和ResolvedParameter有什麼區別?
- 6. 函數和構造函數的區別
- 7. BlobBuilder和新的Blob構造函數有什麼區別?
- 8. void,eval和JavaScript中的Function構造函數有什麼區別?
- 9. App構造函數和app.Onstartup有什麼區別?
- 10. Android構造函數和onCreate()之間有什麼區別?
- 11. C#&CLI與值類型和構造函數有什麼區別?
- 12. Proxy構造函數和Reflect有什麼區別?
- 13. 默認和默認構造函數有什麼區別
- 14. 靜態,內部和公共構造函數有什麼區別?
- 15. 什麼作爲參數傳遞給構造函數從超類
- 16. 什麼作爲字符串參數傳遞給構造函數?
- 17. C#構造函數參數傳遞
- 18. 將參數傳遞給構造函數
- 19. 傳遞構造函數參數OutputCacheProvider
- 20. 傳遞帶參數的構造函數?
- 21. 默認構造函數和無參數構造函數的區別?
- 22. 構造函數和零參數構造函數之間的區別(Java)
- 23. 中有什麼函數參數和參數之間......區別
- 24. JavaScript中的函數和構造函數之間有什麼區別?
- 25. 構造函數和默認構造函數的區別
- 26. C++函數中「傳遞引用」和「傳遞指針/地址」有什麼區別?
- 27. 這兩個構造函數有什麼區別?
- 28. 以下C++構造函數有什麼區別?
- 29. TreeSet的以下兩個構造函數有什麼區別?
- 30. 這兩個構造函數在JavaScript中有什麼區別?
你知道對象是什麼嗎?構造函數用於創建對象。 –
你也可以麻煩閱讀:http://docs.oracle.com/javase/tutorial/java/javaOO/constructors.html我相信這是很好的解釋 – pedromss
是的我相信我明白什麼是對象,我也認爲我得到他們現在使用的東西。這是我應該使用它的一個很好的例子嗎? http://pastebin.com/N0YFzQtE –