作者brianhsu (墳墓)
看板java
標題Re: [問題] 物件陣列的問題
時間Thu Jul 8 16:46:42 2010
※ 引述《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
→ adrianshum:不止 static initialization block... 07/08 17:15
推 tomap41017:??還有什麼??恕小弟才疏學淺 07/08 22:22
推 bapemilo:謝謝b大告知~這板的大家都很熱心! 07/08 23:02
→ jeff218:還有initialization block...(逃走) 07/09 00:03
→ adrianshum:樓上正解 07/09 00:37