所有項目

2011年5月16日 星期一

5月8號上課,201~215。

  • 201跟202可以對照(static)。前置遞增和後置遞增的問題。




  • 203這題重點是在 interface 和 前置遞增 ++x。補充:interface 裡有預設 public static final。意思就是說 有沒有(public static final)程式會將它匯入,另一個重點可以 少寫、也可以不寫、但不能 寫錯。例如:你開心寫(public static final)也可、(static final)也可、(final)也可、但你不能寫(private static final)就會出錯。還有這題的答案並不是 D、可以執行成功 答案是:B (s 16)。這題可以對照(NO.215)





  • 204 毛老師補充說明 instanceof:可以想像 血統,因為他看的是 new的值。我自己的理解這題目是這樣的:if判斷 c 是 PoisonCup;Cup 裡面 new PoisonCup() 命名是 cup 然後將值丟到 takeCap(這裡) 用 if來判斷,因為 instanceof 是 看血統 我自己是去看 new 的東西,所以 c 當然是 poisonCup。所以第一個if就可以判斷成功 印出 Inconceivable!。










  • 205 這題是講 garbage collection 這東西。以這題重點是 new 一個新的 Object() 並不會將記憶體位置回收,要丟 null 值 才會將資料清空,所以很快就知道第八行 有效果。



  • 206 老師說 等一下。



  • 207 這題是 static 和 non-static 的問題。我自己認為是第三行出錯,但老大說:第六行 return counte 就出現問題,因為 static 值 return回去 non-static 時候就會出錯。因為程式語法就已經有問題了,所以compila過不了。心得:我自己記 static 和 non-static方法就是,non-static是大方的 因為它願意可以配合 static,static 只願意和自己的static配合。



  • 208 是在講繼承 實作的問題。Go←Sente實作Go←Goban繼承Sente←Stone繼承老爸Goban並實作去世已久的Go。 

Sente a = new Sente() 並取 a.go() 這並不難 知道 是 go in Sente。
Goban b = new Goban() 取 b.go() 這也很好判斷 是 go in Goban。
Stone c = new Stone() 取 c.go() 這會有點亂 的原因是 因為(繼承Goban也有實作Go),不過裡面的值 還是 Goban的。
這題有點奇怪的是因為 正解釋 有這三個 可是題目答案最多也只有兩個,取最接近的 答案 B。


  • 209這題就簡單多了,找建構子相同的資料型別就可。println(4,5),很清楚的知道 這就是兩個 int,所以馬上就可以判斷出,return a囉!



  • 210 這題我自己的理解方法:((TestA)new TestB()).start();,(TestA)是經典,都已經這麼強制的轉TestB,理所當然印出TestB。



  • 211 這題就不說明了,因為太基本了。



  • 212 這題細說 要打太多字了 所以 用我理解的方式。b.snootch 看32 就知道會呼叫 15行→16行會呼叫20行 →21行會呼叫25行 印出 28行 → 印出22行 → 印出 17行。然後 + b.bootch 是 int 只有 420。



  • 213 這題老師說是很基本的問題,希望可熟練。我不知道怎麼解說這題呢!因為捉不到重點。



  • 214 這題就是在講 繼承 建構子的東西。心得:繼承的時候 父有建構子 那子就要有。這題老爸 Plant有 public Plant(String name)這建構子,身為兒子 Tree 卻沒有public Plant(String name)這建構子{補:基本概念 那就是預設建構子 public plant()};這時候很怪了阿 老爸跟兒子卻有不同的建構子,要馬老爸Plant裡加入 public plant() 不然 兒子Tree裡面加入 public Plant(String name);只有這兩個解決方法,所以答案是 D。




這都是我自己的思考邏輯去寫的,我相信會有 瑕疵,如果發現我的問題請糾正我。這樣我才能知道問題,我會虛心接受的。

沒有留言:

張貼留言