精華筆記:
- static final常量:應用率高
- 必須宣告同時初始化
- 由類名打點來訪問,不能被改變
- 建議:常量所有字母都大寫,多個單詞用_分隔
- 編譯器在編譯時會將常量直接替換為具體的數,效率高
- 何時用:資料永遠不變,并且經常使用
- 抽象方法:
- 由abstract修飾
- 只有方法的定義,沒有具體的實作(連{}都沒有)
- 抽象類:
- 由abstract修飾
- 包含抽象方法的類必須是抽象類
- 抽象類不能被實體化(new物件)
- 抽象類是需要被繼承的,派生類:
- 重寫抽象方法---------------變不完整為完整
- 也宣告為抽象類------------一般不這么用
- 抽象類的意義:
- 封裝共有的屬性和行為-------------------代碼復用
- 為所有派生類提供統一的型別----------向上造型(代碼復用)
- 可以包含抽象方法,為所有派生類提供統一的入口(向上造型后能點出來),同時可以達到強制必須重寫的目的(相當于制定了一個標準)
補充:
-
設計規則:
-
將派生類所共有的屬性和行為,抽到超類中-------------抽共性
-
若派生類的行為(實作代碼)都一樣,設計為普通方法
若派生類的行為(實作代碼)都不一樣,設計為抽象方法
-
,,,,下周二講
-
-
抽象方法/抽象類的疑問:
- 抽象方法存在的意義是什么?
- 保證當發生向上造型時,通過超類的參考能點出來那個方法-------保證能點出方法來
- 既然抽象方法的意義是保證能點出來,那為什么不設計為普通方法呢?
- 設計為普通方法,意味著派生類可以重寫也可以不重寫,但設計為抽象方法,則可以強制派生類必須重寫--------達到強制派生類重寫,統一的目的
- 抽象方法存在的意義是什么?
-
畫物件帶數:先找main
-
當創建(new)World物件時,就會分配World類中的成員變數(ship,submarines,mines,bombs)
-
frame.setVisible(true);時會自動呼叫paint()方法,在paint()中:當第1次用到Images類時,會將Images.class加載到方法區中,同時將那一堆靜態圖片分配到方法區中,同時自動執行靜態塊給圖片賦值
-
ship.paintImage(g);時會去呼叫paintImage()方法,方法中的this指的就是ship戰艦,方法中在判斷戰艦是否是活著的,若活著則獲取戰艦的圖片,用畫筆給畫到戰艦的x和y坐標上
submarines[i].paintImage(g);時會去呼叫paintImage()方法,假設submarines[i]為偵察潛艇物件,則方法中的this指的就是偵察潛艇,方法中在判斷偵察潛艇是否是活著的,若活著則獲取偵察潛艇的圖片,用畫筆畫到偵察潛艇的x和y坐標上 ,假設submarines[i]為偵察潛艇物件......
-
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/501322.html
標籤:其他
