JAVA封裝
面向對象有三大特徵:
1、封裝
2、繼承
3、多態
封裝:
定義:
- 隱藏類的內部信息,不允許外部程序直接訪問,而是通過方法進行操作
封裝操作步驟:
-
1、將屬性設置爲private,只能在本類中使用,如private int age;
-
2、編寫對應屬性的賦值方法,如setAge()和getAge()
-
賦值方法:
- public void setAge(int age){
if (age>=0&&age<=100){
this.age=age;
}else {
this.age=18;
}
}
-
取值方法:
- public int getAge(){
return age;
}
-
this關鍵字:
this關鍵字訪問本類中的實例變量(對象變量):
-
this表示當前這個對象,也就是說當前誰調用這個方法,則這個對象就是誰
-
this關鍵字可以訪問本類中的屬性:
- 當局部變量和成員變量沒有同名時,則編寫屬性名等價於this.屬性名,如id等價於this.id
- 當局部變量和成員變量同名時,並且訪問成員變量則需要使用this
this關鍵字訪問本類中的實例方法(對象方法):
-
方法名稱([參數列表])
- 等價於this.方法名稱([參數列表])
this關鍵字訪問本來中其他構造方法:
-
this();
-
this([參數列表]);
-
注意:
- 當時使用this訪問本類中構造方法時,則只能編寫在構造方法中,並且是一條語句,其他不可以,譯錯
- 不可以自己調自己(遞歸調用)
static關鍵字:
爲什麼使用static關鍵字修飾屬性:
- 方法區(也叫共享區=》節省空間)
static關鍵字修飾屬性(靜態)
-
稱爲靜態屬性,也叫類的變量,沒有static稱爲非靜態屬性,也叫做實例變量
-
在方法區(共享區)中存儲,並且所有對象都可以訪問
-
與類同生死,也就是說類在,static修飾的屬性就在
-
使用:
- 類名.屬性名稱
- 引用名稱.屬性名稱(new後)
-
類優先於對象,也就是說類的生命週期比較長
static關鍵字修飾方法:
-
稱爲靜態方法,也叫做類的方法
-
與類同生死,也就說類存在時,static修飾的方法就存在
-
使用:
- 類名.方法([參數列表]);
- 引用名稱.方法名稱([參數列表]);(new後)
-
靜態方法中只能訪問靜態屬性、靜態方法
-
當方法體中只訪問靜態屬性、靜態方法時,可以編寫爲靜態方法,但如果有實列屬性、實列方法則只能編寫爲非靜態
static修飾靜態代碼塊:
-
(構造方法:完成對實列變量的賦值)
-
(靜態代碼塊:主要對靜態屬性賦值)
-
靜態代碼塊在類第一次被載入時執行
-
static String address;
static {
address=“北京”;
}
- address必須存在