JAVA封装性
1、封裝性的概念
(1)封裝性是面向對象思想的三大特征之一
(2)封裝就是隱藏實現細節,僅對外提供訪問接口。
(3)屬性的封裝、方法的封裝、類的封裝、組件的封裝、模塊化的封裝、系統級封裝。
2、封裝的好處
1、模塊化
2、信息隱藏
3、代碼重用
4、插件化易于調試
5、具有安全性
3、封裝缺點
1、會影響執行效率
4、成員變量與局部變量
(1)在類中的位置不同
成員變量:在類中定義
局部變量:在方法中定義或者方法的參數
(2)在內存中的位置不同
成員變量:在堆內存(成員變量屬于對象,對象進堆內存)
局部變量:在棧內存(局部變量屬于方法,方法進棧內存)
(3)生命周期不同
成員變量:隨著對象的創建而存在,隨著對象的銷毀而消失。
局部變量:隨著方法的調用而存在,隨著方法的調用完畢而消失。
(4)初始化不同
成員變量:有默認的初始化值,引用類型默認為null。
局部變量:沒有默認的初始化值,必須定義,賦值。然后才能使用。
注意:
局部變量名稱可以和成員變量名稱一樣,在方法中使用的時候,采用就近原則。
構造方法
1、構造方法就是類構造對象時調用的方法,用于對象的初始化工作。
2、構造方法是實例化一個類的對象時,也就是new的時候,最先調用的方法。
構造方法的定義:
構造方法是在類中定義的,構造方法的定義格式:方法名與類名相同,無返回值類型的聲明?!静粚憊oid】
Dog do個= New Dog(),帶括號表示調用了方法,此時調用的方法就是構造方法。
構造方法重載
無參構造方法:
public Dog(){}
帶一個參數的構造方法:
public Dog(String name){
this.name= name;
}
帶兩個參數的構造方法:
public Dog(String name,int age){
this.name=name;
this.age=age;
}
注意:
一個類中,包含構造方法的重載【包含多個構造方法,無參、一個參數、兩個參數等】
如果在類中需要相互調用:例如兩個參數的構造方法需要調用一個參數的構造方法:
構造方法總結:
(1)構造方法名與類名相同,沒有返回值聲明(無 void)
(2)構造方法用于初始化數據(屬性)
(3)每一個類中都有一個默認的無參構造方法
(4)如果類中有顯示的構造方法,那么默認的構造方法無效
(5)如果類中有顯示的構造方法,還想保留默認的構造方法,需要顯示的寫出來。
(6)構造方法可以有多個,但是參數不一樣,成為構造方法的重載
(7)在構造方法中調用另一個構造方法,使用this(……),該句代碼必須是第一句。
(8)構造方法之間的調用,必須有出口
(9)給對象初始化數據可以使用構造方法或setter方法,通常,兩種方法都會保留。
(10)一個好的編寫習慣是要保留默認的構造方法,[為了方便一些框架代碼使用反射來創建對象]
this關鍵字
This關鍵字是一個很重要的概念,使用this關鍵字可以完成已下的操作。
調用類中的屬性
public void setName(String name){
this.name = name;
}
調用類中的方法或者構造方法
表示當前對象:在方法被調用的時候,哪個對象調用了方法,在方法內的this就表示那個對象
main(){
Dog dog = new Dog();
dog.setName(“旺財”);
}
Static關鍵字
作用
(1)使用static關鍵字修飾一個屬性
聲明為static的變量實質上就是全局變量。
(2)使用Static關鍵字修飾一個方法
通常,在一個類中定義一個方法為Static,那就是說,無需本類中的對象即可調用此方法。
(3)使用Static關鍵字修飾一個類(內部類)
特點
(1)靜態變量或方法不屬于對象,依賴于類
(2)靜態變量是全局變量,生命周期從類被加載后一直到程序結束。
(3)靜態變量只存儲一份,在靜態方法區中存儲
(4)靜態變量是本類中所有對象共享一份。
(5)不建議使用對象名調用靜態變量,建議使用類名調用靜態數據。
(6)Static修飾一個方法,那么該方法屬于類,不屬于對象,直接使用類名調用。
聲明為Static的方法有以下幾條限制
他們僅能調用其他的Static的方法
他們只能訪問Static數據
他們不能以任何方式引用this(表示當前類)或Supper(表示父類)
所有對象共同的屬性或方法,那么我們可以定義為Static
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
- 上一篇: 能用中文编写程序吗假如用中文编程
- 下一篇: 配置struts.xml时extends