摘要
- 構(gòu)造方法
- 靜態(tài)static
構(gòu)造方法Constructor概述和格式
- A:構(gòu)造方法概述和作用
- 給對象的數(shù)據(jù)(屬性)進行初始化
- 構(gòu)造方法不能用對象調(diào)用
- B:構(gòu)造方法格式特點
- a:方法名與類名相同(大小也要與類名一致)
- b:沒有返回值類型卸耘,連void都沒有
- c:沒有具體的返回值return;
構(gòu)造方法的重載及注意事項
- A:案例演示
- 構(gòu)造方法的重載
- 重載:方法名相同,與返回值類型無關(guān)(構(gòu)造方法沒有返回值),只看參數(shù)列表
- B:構(gòu)造方法注意事項
- a:如果我們沒有給出構(gòu)造方法卿拴,系統(tǒng)將自動提供一個無參構(gòu)造方法。
- b:如果我們給出了構(gòu)造方法陵叽,系統(tǒng)將不再提供默認的無參構(gòu)造方法久免。
- 注意:這個時候鳖藕,如果我們還想使用無參構(gòu)造方法宾尚,就必須自己給出懦傍。建議永遠自己給出無參構(gòu)造方法
給成員變量賦值的兩種方式的區(qū)別
- A:setXxx()方法
- 修改屬性值
- B:構(gòu)造方法
- 給對象中屬性進行初始化
創(chuàng)建一個對象的步驟
- A:畫圖演示
- 畫圖說明一個對象的創(chuàng)建過程做了哪些事情?
- Student s = new Student();
- 1,Student.class加載進內(nèi)存
- 2,聲明一個Student類型引用s
- 3,在堆內(nèi)存創(chuàng)建對象,
- 4,給對象中屬性默認初始化值
- 5,屬性進行顯式初始化
- 6,構(gòu)造方法進棧,對對象中的屬性賦值,構(gòu)造方法彈棧
-
7,將對象的地址值賦值給s
5.png
static關(guān)鍵字及內(nèi)存圖
-
A:案例演示
- 通過一個案例引入static關(guān)鍵字雹舀。
- 人類:Person。每個人都有國籍谎脯,中國葱跋。
-
B:畫圖演示
-
帶有static的內(nèi)存圖
6.png7.png
-
static關(guān)鍵字的特點
- A:static關(guān)鍵字的特點
- a:隨著類的加載而加載
- b:優(yōu)先于對象存在
- c:被類的所有對象共享
- 舉例:咱們班級的學(xué)生應(yīng)該共用同一個班級編號。
- 其實這個特點也是在告訴我們什么時候使用靜態(tài)?
- 如果某個成員變量是被所有對象共享的源梭,那么它就應(yīng)該定義為靜態(tài)的娱俺。
- 舉例:
- 飲水機(用靜態(tài)修飾)
- 水杯(不能用靜態(tài)修飾)
- 共性用靜態(tài),特性用非靜態(tài)
- d:可以通過類名調(diào)用
- 其實它本身也可以通過對象名調(diào)用。
- 推薦使用類名調(diào)用废麻。
- 靜態(tài)修飾的內(nèi)容一般我們稱其為:與類相關(guān)的荠卷,類成員
- B:案例演示
- static關(guān)鍵字的特點
static的注意事項
- A:static的注意事項
- a:在靜態(tài)方法中是沒有this關(guān)鍵字的
- 如何理解呢?
- 靜態(tài)是隨著類的加載而加載,this是隨著對象的創(chuàng)建而存在烛愧。
- 靜態(tài)比對象先存在油宜。
- 如何理解呢?
- b:靜態(tài)方法只能訪問靜態(tài)的成員變量和靜態(tài)的成員方法
- 靜態(tài)方法:
- 成員變量:只能訪問靜態(tài)變量
- 成員方法:只能訪問靜態(tài)成員方法
- 非靜態(tài)方法:
- 成員變量:可以是靜態(tài)的,也可以是非靜態(tài)的
- 成員方法:可是是靜態(tài)的成員方法怜姿,也可以是非靜態(tài)的成員方法慎冤。
- 簡單記:
- 靜態(tài)只能訪問靜態(tài)。
- 如果一個類中的方法都是靜態(tài)的沧卢,那么需要把構(gòu)造方法設(shè)置為私有的蚁堤,否則其他類可能通過構(gòu)造函數(shù)創(chuàng)建本壘的對象。
- 靜態(tài)方法:
- a:在靜態(tài)方法中是沒有this關(guān)鍵字的
靜態(tài)變量和成員變量的區(qū)別
- 靜態(tài)變量也叫類變量 成員變量也叫對象變量
- A:所屬不同
- 靜態(tài)變量屬于類但狭,所以也稱為為類變量
- 成員變量屬于對象披诗,所以也稱為實例變量(對象變量)
- B:內(nèi)存中位置不同
- 靜態(tài)變量存儲于方法區(qū)的靜態(tài)區(qū)
- 成員變量存儲于堆內(nèi)存
- C:內(nèi)存出現(xiàn)時間不同
- 靜態(tài)變量隨著類的加載而加載,隨著類的消失而消失
- 成員變量隨著對象的創(chuàng)建而存在立磁,隨著對象的消失而消失
- D:調(diào)用不同
- 靜態(tài)變量可以通過類名調(diào)用呈队,也可以通過對象調(diào)用
- 成員變量只能通過對 象名調(diào)用
main方法的格式詳細解釋
- A:格式
- public static void main(String[] args) {}
- B:針對格式的解釋
- public 被jvm調(diào)用,訪問權(quán)限足夠大唱歧。
- static 被jvm調(diào)用宪摧,不用創(chuàng)建對象,直接類名訪問
- void被jvm調(diào)用颅崩,不需要給jvm返回值
- main 一個通用的名稱绍刮,雖然不是關(guān)鍵字,但是被jvm識別
- String[] args 以前用于接收鍵盤錄入的
- C:演示案例
- 通過args接收鍵盤例如數(shù)據(jù)
工具類中使用靜態(tài)
- A:制作一個工具類
- ArrayTool
- 1,獲取最大值
- 2,數(shù)組的遍歷
- 3,數(shù)組的反轉(zhuǎn)
說明書的制作過程
- A:對工具類加入文檔注釋
- B:通過javadoc命令生成說明書
- @author(提取作者內(nèi)容)
- @version(提取版本內(nèi)容)
- javadoc -d 指定的文件目錄 -author -version ArrayTool.java
- @param 參數(shù)名稱//形式參數(shù)的變量名稱@return 函數(shù)運行完返回的數(shù)據(jù)
- public類才能生成文檔
如何使用JDK提供的幫助文檔
- A:找到文檔挨摸,打開文檔
- B:點擊顯示,找到索引岁歉,出現(xiàn)輸入框
- C:你應(yīng)該知道你找誰?舉例:Scanner
- D:看這個類的結(jié)構(gòu)(需不需要導(dǎo)包)
- 成員變量 字段
- 構(gòu)造方法 構(gòu)造方法
- 成員方法 方法