Java面向對象(二)

一.封裝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、實例代碼塊,每建立一個對象執行一次,在構造方法前執行

四、修飾內部類: 靜態內部類

五、注意不能修飾局部變量

相關文章
相關標籤/搜索