知道了,把原來(lái)的定義保存下來(lái), 謝謝:)
不錯(cuò),可惜圖沒有貼過(guò)來(lái):(
請(qǐng)教一個(gè)問(wèn)題,怎樣調(diào)用被重載的方法? 比如你重載了系統(tǒng)的toString,那我能不能繼續(xù)調(diào)用系統(tǒng)的toString呢?
re: Java中的++操作 Jack L 2007-09-21 09:32
是的,Java和JavaScript是這樣的,但是你看前面的評(píng)論,C語(yǔ)言中,a++在整個(gè)語(yǔ)句(用分號(hào)結(jié)束的語(yǔ)句)結(jié)束之后才執(zhí)行。這是關(guān)鍵。@piaoyi
re: Java中的++操作 Jack L 2007-09-21 09:31
是符合語(yǔ)義的。++操作的優(yōu)先級(jí)本來(lái)就大于加號(hào),所以一直不用寫括號(hào),寫括號(hào)只是為了可讀性@dc
re: Java中的++操作 Jack L 2007-09-20 20:55
好玩就行,自己肯定不會(huì)這樣編碼的:)
re: Java中的++操作 Jack L 2007-09-20 18:48
teasp 說(shuō)的二樓是我嗎? 偶是樓主的說(shuō):)
我剛看了
執(zhí)行下面兩句
1: i=i++;
2: i=(i++);
在C中,執(zhí)行完成之后,i的值均為2
在Java和JavaScript中,均為1
re: Java中的++操作 Jack L 2007-09-20 17:57
謝謝Unmi,看來(lái)在C語(yǔ)言中,++確實(shí)在最后執(zhí)行,這與Java和JavaScript非常不一樣。后者的++在表達(dá)式走出作用域的時(shí)候就執(zhí)行,而不會(huì)等到整個(gè)語(yǔ)句結(jié)束。
re: Java中的++操作 Jack L 2007-09-20 17:52
再進(jìn)一步,考慮:
i=1;
i=(4+(i++)+(i++));
C語(yǔ)言的運(yùn)行結(jié)果為8,Java和JavaScript的結(jié)果為7.
印證了我剛才對(duì)于C語(yǔ)言機(jī)制的想法,即++操作在整條語(yǔ)句之后執(zhí)行;相加的值為(4+1+1)
在Java和JavaScript中,第二次load i的值時(shí),++操作已經(jīng)被執(zhí)行過(guò)一次了,所以相加的值為(4+1+2)
re: Java中的++操作 Jack L 2007-09-20 17:49
是的,現(xiàn)實(shí)中應(yīng)該幾乎沒有這種寫法,純興趣研究:)
re: Java中的++操作 Jack L 2007-09-20 17:39
千里兄過(guò)獎(jiǎng)了
順便補(bǔ)充一下,剛才我研究了JavaScript和C語(yǔ)言中的類似情況,發(fā)現(xiàn)JavaScript的結(jié)果與剛才講的Java代碼結(jié)果相同,但是C語(yǔ)言代碼有明顯不同的結(jié)果;
比如這段代碼:
int i=1;
int t=(4+(i++));
執(zhí)行完成之后,t的值為5,i的值為2;這個(gè)結(jié)果一點(diǎn)也不出乎意料
但是稍加改寫
int i=1;
i=(4+(i++));
執(zhí)行完成之后,i的值變成了6;如果這段交給Java虛擬機(jī)運(yùn)行,如上面所示,結(jié)果是5;
所以,我的想法是,C語(yǔ)言中的++(位于操作數(shù)右邊)在整條用分號(hào)結(jié)束的語(yǔ)句結(jié)束之后運(yùn)行;相當(dāng)于在該語(yǔ)句之后單獨(dú)寫一條i++語(yǔ)句。
CGIC是服務(wù)端技術(shù),與客戶端界面無(wú)關(guān)。
它只關(guān)心如何取得和處理數(shù)據(jù),并不關(guān)心如何現(xiàn)實(shí)結(jié)果。