Re: [問題] 物件陣列的問題

看板java作者 (墳墓)時間15年前 (2010/07/08 16:46), 編輯推噓2(206)
留言8則, 6人參與, 最新討論串2/2 (看更多)
※ 引述《bapemilo (猜猜看)》之銘言: : 新手的問題~ : public class test{ : Member[] members=new Member[2]; ^^^^^^^^^^^^^^^^ 這個叫宣告 (Declare) : void buildMembers(){ : members[0] = new Member(); : members[1] = new Member(); ^^^^^^^^^^^^^^^^^^^^^^^^^^ 這兩個叫 assignment / expression : } : } : 當以這樣宣告的時候compile可以過 : 但是如果改成這樣 : public class test{ : Member[] members=new Member[2]; : members[0] = new Member(); : members[1] = new Member(); : } : compile時卻不能過 被這問題困擾好久~ 上網找一陣子也沒找到答案 : 希望各位高手能幫忙解答下新手的問題~~ Note: 以下講的不完全正確,只是大致上的概念,如果你要正確的答案,    去翻 Java 的規格書會最準確,告訴你什麼能 compile 過,什麼 不能 compile 過。 在 Java 裡面,所有 Expression 都只能在 method 裡出現。 (好啦,我知道還有 static initialization block 也可以,不過就先當這樣吧) 唯一的例外是當你在宣告變數時,可以同時用一個 expression 當做 assignment。 所以,你的第一個例子是例外。 第二個例子是不合法的(Expression 只能出現在 method 中),當然不能編譯。 -- ~ 白馬帶著她一步步地回到中原。白馬已經老了,只能慢慢地走, 'v' Brian Hsu 但終是能回到中原的。江南有楊柳、桃花,有燕子、金魚…… // \\ ( 墳 墓 ) /( )\ 但這個美麗的姑娘就像古高昌國人那樣固執。 【白馬嘯西風】 ^`~'^ http://bone.twbbs.org.tw/blog 『那都是很好很好的,可我偏不喜歡。』 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.109.19.36

07/08 17:15, , 1F
不止 static initialization block...
07/08 17:15, 1F

07/08 22:22, , 2F
??還有什麼??恕小弟才疏學淺
07/08 22:22, 2F

07/08 23:02, , 3F
謝謝b大告知~這板的大家都很熱心!
07/08 23:02, 3F

07/09 00:03, , 4F
還有initialization block...(逃走)
07/09 00:03, 4F

07/09 00:37, , 5F
樓上正解
07/09 00:37, 5F

07/09 08:39, , 6F
從來沒聽過。(大誤)
07/09 08:39, 6F

07/09 08:41, , 7F
不過我還真的幾乎沒用過initialization block就是了。:p
07/09 08:41, 7F

07/10 00:38, , 8F
instance/static initializer(block) 都是 method。
07/10 00:38, 8F
文章代碼(AID): #1CDP1r2w (java)
討論串 (同標題文章)
文章代碼(AID): #1CDP1r2w (java)