一.封裝java
一、爲何要使用封裝
在類的外部直接操做類的屬性是」不安全的"
二、如何實現封裝
1)、屬性私有化:設置屬性的修飾符爲private
2) 、提供公共的set和get方法
賦值的方法:setter: public void setXXX(參數){} XXX:與屬性名相同,把屬性名的第一個字母改成大寫
參數:與屬性的類型一致
取值的方法:getter: public 返回值類型 getXXX(){} 返回值的類型與屬性的類型一致
3) 、在set方法中添加程序流程控制語句安全
private String sex; //set方法 public void setSex(String _sex){ if("男".equals(_sex)||"女".equals(_sex)){ sex = _sex; }else{ System.out.println("輸入性別有誤,僅爲男或女!"); } } //get方法 public String getSex(){ return sex; }
三、使用封裝的好處
封裝屬性,暴露公共的訪問方法,提升數據的安全性
同時方便修改和維護this
二.構造方法code
一、構造方法的語法
訪問修飾符 構造方法名(參數列表){
方法體;
}
二、構造方法的特色對象
1)、構造方法名必須與類名相同
2) 、構造方法沒有返回值類型,也不寫void. 若是寫了void再也不是構造方法,而是成員方法get
三、構造方法的分類class
1)、默認構造方法,若是類中沒有定義構造方法,則在運行時系統提供一個公共的無參的構造方法。 public Student(){}
2)、顯示構造方法:在類定義的構造方法。此時系統再也不提供公共的無參的構造方法。建議在類顯示定義無參的構造方法
四、構造方法什麼時候調用?
在建立對象時,與new關鍵詞一塊兒使用。每一個對象僅調用一次
五、構造方法的做用
初始化屬性的值。
六、構造方法能夠重載嗎?
能夠。變量
三.參數傳遞語法
1.按值傳遞引用
基本類型之間傳參是按值傳遞,形參與實參是兩個獨立的空間。形參的改變不影響實參的值
2.按地址傳遞
引用類型之間傳參是按「地址"傳遞,實參傳遞給形參的是實參所引用對象的」地址".形參與實參引用同一「地址"的對象。
形參改變對象的屬性值,實參再訪問對象時,爲改變後的值。
四.this關鍵字與static關鍵字
4.一、this是什麼?
this是一個引用。在對象的內部引用當前對象。存放的是當前對象的」地址"
4.二、this能夠訪問哪些成員
4.2.1 成員變量
4.2.2 成員方法
4.2.3 構造方法
4.三、this在哪裏使用?
4.3.一、在類成員方法使用: 區分紅員變量與同名的局部變量.this.成員變量
4.3.二、在類成員方法中,訪問其餘成員方法 : this.成員方法名()
4.3.三、在類的某個構造方法中,調用類的其餘構造方法 :this(參數). 必定寫在構造方法的有效代碼的"第一行"
好處:實現代碼的重用
static:靜止的,不變的
一、 修飾屬性:靜態屬性。屬於類全部。全部的對象共享
訪問方式: 類名.靜態屬性名
static聲明的變量會放在方法區中,static聲明的變量只初始化一次,加載類的時候初始化,
若是多個靜態變量,會按照靜態變量在類中的順序進行初始化
2、修飾方法 :靜態方法
訪問方式:類名.靜態方法
1)、與成員方法的區別:
a、 成員方法屬於對象全部,
成員方法中能夠訪問成員變量,其餘成員方法,靜態變量,靜態方法,可使用this關鍵詞
b、靜態方法屬於類全部,與對象無關。
靜態方法中僅能夠訪問靜態變量,靜態方法,
不能夠直接訪問成員變量,成員方法。能夠建立對象間接的訪問
不可使用this關鍵詞
三、修飾代碼塊:在類加載時執行,僅執行一次
語法 : static{ }
1)、與實例代碼塊的區別:
a、靜態代碼塊在類加載時執行,僅執行一次
b、實例代碼塊,每建立一個對象執行一次,在構造方法前執行
四、修飾內部類: 靜態內部類
五、注意不能修飾局部變量