判斷程式輸出的結果
public答案class
test
static
class
a
public
void setvalue(int
value)
public
intgetvalue()
catch
(exception e)
finally
return value;}}
static
class b extends
a
public
void setvalue(int
value) }}
分析過程:
例項化b首先例項化a
在例項化b的時候,呼叫b的構造器,並將5作為引數傳遞給a的構造器,執行setvalue方法,此時b類內已經對繼承來的setvalue進行了覆寫,在內部又呼叫了a的setvalue並將 2* 5=10 作為引數傳遞進去
此時b的成員value值是10,然後執行a的構造器內的setvalue(getvalue() -3)這一行**,首先執行他繼承來的getvalue方法
在getvalue中,value的值加1變為11,此時11要作為此方法的返回值被返回,接下來執行finally塊內的**,再次呼叫b的setvalue方法將value的值設定為22,並將value列印出來(22)
接下來setvalue(getvalue() - 3)內的變數就得到返回了,那就是11,於是將其減去3得到8,並作為引數傳遞,接下來又是呼叫setvalue將8乘以2得到16進行傳遞,然後按照上面的順序 加1 得到17 並等待返回
然後finally塊內,17乘以2得到34輸出(34)
最後17被返回,列印(17)
一道JS面試題引發的血案
剛入職新公司,屬於公司萌新一枚,一天下午對著螢幕看 架構時。bi專案組長給我看了一道面試別人的js面試題。雖然答對了,但把理由說錯了,照樣不及格。話不多說,直接上題 var a 1 switch a result 最後什麼都不會輸出 看完題如果答對並且知道理由的小夥伴,僅當加深印象 如果你也像我一樣...
一道JS面試題引發的血案
剛入職新公司,屬於公司萌新一枚,一天下午對著螢幕看 架構時。bi專案組長給我看了一道面試別人的js面試題。雖然答對了,但把理由說錯了,照樣不及格。話不多說,直接上題 var a 1 switch a result 最後什麼都不會輸出 看完題如果答對並且知道理由的小夥伴,僅當加深印象 如果你也像我一樣...
一道筆試題
看到一道筆試題,跟自己想的有點出入,就跑了下,看了看原因。我稍微改了下 include int main int argc,char argv 輸出結果 c 5 d 245 press any key to continue vc6.0 debug下的彙編 5 unsigned char a 0xa...