課程
/后端開發
/Java
/Java入門第二季 升級版
如題。。。。。。。。。。還有為什么構造方法那里public HelloWorld一定要與類名同名。。?
2015-03-12
源自:Java入門第二季 升級版 8-10
正在回答
首先,構造方法名和類名相同,是語法規定的,用來表示這是該類的構造方法。類是一種用戶自定義的類型,和int,float等在語義上類似,其結構多種多樣。當定義一個類的對象時候(例如HelloWorld類的對象hello),編譯程序需要根據其所屬的類類型為對象分配存儲空間。在聲明對象時候,可以同時給對象的數據成員賦初值,也可以不用在定義時候賦初值。在java中,定義了一種特殊的成員方法可以在聲明對象的時候自動為其賦初值,該方法就是構造方法。所以當你在創建HelloWorld類的一個對象hello時候,系統是自動執行了構造方法。同理,當你再次創建HelloWorld的另一個對象hello2時候,系統一樣會自動執行構造方法。即當執行完 HelloWorld hello = new HelloWorld();這條語句時(還沒執行下一條語句),系統就已經為你的對象hello初始化了,即自動調用了構造方法HelloWorld();具體怎么初始化,就看你的類的構造方法自己是怎么操作的。當執行完 HelloWorld hello2 = new HelloWorld();這條語句時,編譯系統也已經自動的調用構造方法,為對象hello2自動初始化了,所以創建hello2時就是自動運行。其實你可以在main()中,只創建hello對象,就算后面的操作都沒有,系統也是自動運行hello的構造函數的,可以自己仿一下。其實在系統里,構造方法是默認存在的。但是當你定義了一個顯式的構造方法,即當你自己明確定義public HelloWorld()時,就以你定義的構造方法為主,這就是為何我們可以通過自己定義構造方法來確定一個手機對象的屏幕具體大小。當你沒有為對象構造一個構造方法時候,系統就會調用默認的構造方法,這時候就不能在初始化對象時候就確定屏幕具體大小。
001122 提問者
www6877
hello ?hello2 ? abc 這都是變量名啊,用哪個都一樣,只要符合命名規則。 他new的都是HelloWorld類啊,是同一個類啊。
一個是構造器一個是實例化,不一樣的
舉報
課程升級!以終為始告別枯燥,在開發和重構中體會Java面向對象編程的奧妙
2 回答第8行構造方法為什么是public HelloWorld(),可以是其他嗎,比如說public Name()
3 回答以直接創建內部類對象 Inner i=new Inner(); 為什么非得 HelloWorld hello=new HelloWorld(); Inner i =hello.new.Inner(); 不明白!
3 回答為什么構造方法也叫HelloWorld?
3 回答請問為什么最后HelloWorld hello2=new HelloWorld();會輸出最后2行
1 回答為什么再次創建對象hello2時會再次執行構造方法和初始化快?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2015-03-22
首先,構造方法名和類名相同,是語法規定的,用來表示這是該類的構造方法。類是一種用戶自定義的類型,和int,float等在語義上類似,其結構多種多樣。當定義一個類的對象時候(例如HelloWorld類的對象hello),編譯程序需要根據其所屬的類類型為對象分配存儲空間。在聲明對象時候,可以同時給對象的數據成員賦初值,也可以不用在定義時候賦初值。在java中,定義了一種特殊的成員方法可以在聲明對象的時候自動為其賦初值,該方法就是構造方法。所以當你在創建HelloWorld類的一個對象hello時候,系統是自動執行了構造方法。同理,當你再次創建HelloWorld的另一個對象hello2時候,系統一樣會自動執行構造方法。即當執行完 HelloWorld hello = new HelloWorld();這條語句時(還沒執行下一條語句),系統就已經為你的對象hello初始化了,即自動調用了構造方法HelloWorld();具體怎么初始化,就看你的類的構造方法自己是怎么操作的。當執行完 HelloWorld hello2 = new HelloWorld();這條語句時,編譯系統也已經自動的調用構造方法,為對象hello2自動初始化了,所以創建hello2時就是自動運行。其實你可以在main()中,只創建hello對象,就算后面的操作都沒有,系統也是自動運行hello的構造函數的,可以自己仿一下。其實在系統里,構造方法是默認存在的。但是當你定義了一個顯式的構造方法,即當你自己明確定義public HelloWorld()時,就以你定義的構造方法為主,這就是為何我們可以通過自己定義構造方法來確定一個手機對象的屏幕具體大小。當你沒有為對象構造一個構造方法時候,系統就會調用默認的構造方法,這時候就不能在初始化對象時候就確定屏幕具體大小。
2015-04-21
hello ?hello2 ? abc 這都是變量名啊,用哪個都一樣,只要符合命名規則。 他new的都是HelloWorld類啊,是同一個類啊。
2015-03-13
一個是構造器一個是實例化,不一樣的