Java - 对象的创建
? ?結束C語言的學習后,由面向過程到面向對象編程的轉變,不知道是不是都有點不太適應,如果沒有的話,我應該就是屬于那類的少數人群,這陣子零散的學習,并沒有在Java里收獲足夠的東西。說起對Java最初認識因為GUI界面的魔幻(當然這只是我最最之前的認識,那時候還是一個計算機相關之外的人)。再然后就是面向對象了,那么我寫下這篇博客記錄一下自己的認識。起初是看了馬士兵老師的視頻,他有一段關于面向對象與面向過程的比較的描述,第一種描述:“一個人去新疆,他要先找到一輛車,然后上車,加油門,路過A,路過B,最后到達新疆”。第二種描述:“一個人開著車到了新疆” 。第一種描述是用面向過程的實現,而第二種的描述就是面向實現的實現(這兩種描述是我依據印象寫下的,更詳細具體的描述請查看尚學堂馬士兵老師的網課)。當時我聽后真的有感覺,面向對象也許這正是我們需要的最合理的處理問題的方式。
? 也許你已經知道了,使用“new 類名()”這樣的格式可以創建一個對象,那么,在使用了“new 類名()”這樣一句話后我們的程序究竟干了什么?
package test1;public class T1 {T1(){System.out.println("召喚我干啥???!!!");}void say(){System.out.println("hello ,i'm coming!");}} package test1;public class T1test {public static void main(String[] args){T1 a=new T1();a.say();} }? 這是一個包里的項目,想必,你也一定猜出了運行結果吧
沒錯!
召喚我干啥???!!! hello ,i'm coming!不知道你是否感覺到一絲的奇妙之處,我在這里僅僅是調用了對象
T1 a=new T1();居然在生成對象a的同時把T1類下的T1()方法給使用了...那么,我就在這里做下一個小小的總結吧。一個類下有一個與類同名的方法,在生成該類的對象并為其開辟空間時,會同時調用這個與類名同名的方法,而且當這個方法有形參時候,在生成對象時候也必須帶上參數。(很多情況下,源碼的類下并沒有一個與類名同名的方法,但實際上系統還是會自己添加一個且沒有形參,且在開辟空間時不做任何動作)
例如:
package test1;public class T1 {T1(int n){System.out.println("是的"+n);}void say(){System.out.println("hello ,i'm coming!");}} package test1;public class T1test {public static void main(String[] args){T1 a=new T1(5);a.say();} }? ?
(補充: 當使用運算符new時,將創建給定類的實例(對象)、為它分配內存、調用給定類定義的一個特殊方法)
轉載于:https://www.cnblogs.com/zhangzimu/p/6803189.html
總結
以上是生活随笔為你收集整理的Java - 对象的创建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: QWSLock::up(): Inval
- 下一篇: hibernate缓存机制详细介绍