標籤:
1:如何製作協助文檔(瞭解) (1)寫一個類 (2)加入文檔注釋 (3)通過javadoc工具產生即可
javadoc -d 目錄 -author -version ArrayTool.java
如何使用協助文檔
1:開啟協助文檔2:點擊顯示,找到索引,看到輸入框3:知道你要找誰?以Scanner舉例4:在輸入框裡面輸入Scanner,然後斷行符號5:看包 java.lang包下的類不需要匯入,其他的全部需要匯入。 要匯入: java.util.Scanner6:再簡單的看看類的解釋和說明,別忘了看看該類的版本7:看類的結構 成員變數 欄位摘要 構造方法 構造方法摘要 成員方法 方法摘要8:學習構造方法 A:有構造方法 就建立對象 B:沒有構造方法 成員可能都是靜態9:看成員方法 A:左邊 是否靜態:如果靜態,可以通過類名調用 傳回值類型:人家返回什麼,你就用什麼接收。 B:右邊 看方法名:方法名稱不要寫錯 參數列表:人家要什麼,你就給什麼;人家要幾個,你就給幾個
2:通過JDK提供的API學習了Math類(掌握) (1)API(Application Programming Interface)
API(協助文檔) (2)如何使用呢? 請參照 day08\code\02_如何使用JDK提供的協助文檔\如何使用協助文檔.txt (3)Math類 A:是針對數學進行操作的類 B:沒有構造方法,因為它的成員都是靜態 C:產生隨機數 public static double random(): [0.0,1.0) D:如何產生一個1-100之間的隨機數 int number = (int)(Math.random()*100)+1; E:猜數字小遊戲
3:代碼塊(理解) (1)用{}括起來的代碼。 (2)分類: A:局部代碼塊:局部位置,用於限定變數的生命週期 用於限定變數的生命週期,及早釋放,提高記憶體利用率。 B:構造代碼塊: 在類中中的乘員位置,用{ } 括起來的代碼,瓦斯調用構造方法執行前,都會先執行構造代碼塊。 把多個構造方法中相同的代碼可以放到這裡,每個構造方法執行前,首先執行構造代碼塊。 C:靜態代碼塊:在類中的乘員位置,用{ }括起來的代碼,只不過他用static修飾了。 對類的資料進行初始化,僅僅只執行一次。 (3)靜態代碼塊,構造代碼塊,構造方法的順序問題? 靜態代碼塊 > 構造代碼塊 > 構造方法
+++++++++++++++++++++ 物件導向[下] ++++++++++++++++++++++++
4:繼承(掌握) (1)把多個類中相同的成員給提取出來定義到一個獨立的類中。然後讓這多個類和該獨立的類產生一個關係, 這多個類就具備了這些內容。這個關係叫繼承。 (2)Java中如何表示繼承呢?格式是什麼呢? A:用關鍵字extends表示 B:格式: class 子類名 extends 父類名 {} (3)
繼承的好處: A:提高了代碼的複用性 B:提高了代碼的維護性 C:讓類與類產生了一個關係,是多態的前提 (也是繼承的弊端:讓類的耦合性增強) (4)
繼承的弊端: A:讓類的耦合性增強。這樣某個類的改變,就會影響其他和該類相關的類。 原則:低耦合,高內聚。 耦合:類與類的關係 內聚:自己完成某件事情的能力 B:打破了封裝性 (5)
Java中繼承的特點 A:Java中類只支援單繼承 B:Java中可以多層(重)繼承(繼承體系) (6)
繼承的注意事項: A:子類不能繼承父類的私人成員(成員變數和成員方法) B:子類不能繼承父類的構造方法,但是可以通過super去訪問 C:不要為了部分功能而去繼承 (7)
什麼時候使用繼承呢? A:繼承體現的是:is a的關係。 B:採用假設法 (8)
Java繼承中的成員關係 A:成員變數 a:子類的成員變數名稱和父類中的成員變數名稱不一樣,這個太簡單 b:子類的成員變數名稱和父類中的成員變數名稱一樣,這個怎麼訪問呢? 子類的方法訪問變數的尋找順序: 在子類方法的局部範圍找,有就使用。 在子類的成員範圍找,有就使用。 在父類的成員範圍找,有就使用。 找不到,就報錯。
this和super的區別?
分別是什麼呢? this代表本類對應的引用。 super代表父類儲存空間的標識(可以理解為父類引用,可以操作父類的成員) 怎麼用呢? A:調用成員變數 this.成員變數 調用本類的成員變數 super.成員變數 調用父類的成員變數 B:調用構造方法 this(...) 調用本類的構造方法 super(...) 調用父類的構造方法 C:調用成員方法 this.成員方法 調用本類的成員方法 super.成員方法 調用父類的成員方法
B:構造方法 a:子類的構造方法預設會去訪問父類的
無參構造方法 為什麼呢?答案:是為了子類訪問父類資料的初始化(因為子類會繼承父類中的資料,可能還會使用父類的資料。所以,子類初始化之前,一定要先完成父類資料的初始化。) **每一個構造方法的第一條語句預設都是:super()
b:父類中如果沒有無參構造方法,怎麼辦? 如果父類沒有無參構造方法,那麼子類的構造方法會出現什麼現象呢? 報錯。 如何解決呢? A:在父類中加一個無參構造方法 B:通過使用super關鍵字去顯示的調用父類的帶參構造方法 C:子類通過this去調用本類的其他構造方法 子類中一定要有一個去訪問了父類的構造方法,否則父類資料就沒有初始化。 注意事項: this(...)或者super(...)必須出現在第一條語句上。 如果不是放在第一條語句上,就可能對父類的資料進行了多次初始化,所以必須放在第一條語句上。
C:成員方法 a:子類的成員方法和父類中的成員方法名稱不一樣,這個太簡單 b:子類的成員方法和父類中的成員方法名稱一樣,這個怎麼訪問呢? 通過子類對象訪問一個方法的尋找順序: 在子類中找,有就使用 在父類中找,有就使用 找不到,就報錯
D:方法重寫概述 子類中出現了和父類中一模一樣的方法聲明,也被稱為方法覆蓋,方法複寫。 使用特點: 如果方法名不同,就調用對應的方法 如果方法名相同,最終使用的是子類自己的 方法重寫的應用: 當子類需要父類的功能,而功能主體子類有自己特有內容時,可以重寫父類中的方法,這樣,即沿襲了父類的功能,又定義了子類特有的內容。
*方法重寫的注意事項 A:父類中私人方法不能被重寫 因為父類私人方法子類根本就無法繼承 B:子類重寫父類方法時,存取權限不能更低 最好就一致 C:父類靜態方法,子類也必須通過靜態方法進行重寫 其實這個算不上方法重寫,但是現象確實如此,至於為什麼算不上方法重寫,多態中我會講解 子類重寫父類方法的時候,最好聲明一模一樣。
(9)兩個面試題: A:Override和Overload的區別?Overload是否可以改變傳回值類型? B:this和super的區別和各自的作用? (10)資料初始化的面試題 A:一個類的初始化過程 B:子父類的構造執行過程 C:分層初始化 (11)案例: A:學生和老師案例 繼承前 繼承後 B:貓狗案例的分析和實現
Java基礎班學習筆記(8)