第六天 對象和類
類的定義和使用
現實事物抽象成java代碼的過程就是定義類的過程就是類定義的過程.
比如一部手機,他可以打電話,上網等等,這就是手機所具有的功能,同時手機也有他的特性,顏色,品牌,配置等等.
我們發現事物都有者具體的功能和特點比如我們把所有手機都有的功能用代碼表示,就是類中的方法. 把手機都有的特征用代碼表示就是類中的屬性
描述手機
分析:
手機的特點(屬性):
顏色;
牌子;
...
手機的功能(方法):
打電話;
...
通過代碼表示就是下面類的定義格式
類定義的格式
public class 類名{ 數據類型 屬性名1; 數據類型 屬性名2; ...//可以編寫n個屬性 修飾符 返回類型 方法名(參數){ 方法體: //可以寫n個方法 ,和昨天的方法一樣 } }
示例:
public class Phone{ String color; String brand; String size; void call(){ System.out.println("我可以打電話"); } }
對象:是類的一個實例(對象不是找女朋友) 有狀態和行為。(自己理解是具體的一個事物,比如手機是類,具體到我的手機就變成對象了)
用類創建對象的過程稱為實例化.
創建對象的兩個方式(因為類是引用類型所以也有兩種方式)
1 聲明並實例化對象
類名 對象名 = new 類名();
2先聲明在實例化
類名 對象名= null; 對象名 = new 類名();
當實例化之後有,就可以對對象的屬性和方法進行操作.
對象.屬性; 對象.方法();
public class Test { public static void main(String[] args) { //定義了一個Phone類型的變量p Phone p = new Phone(); /* * 通過p,使用Phone中的屬性 */ //訪問p中的brand品牌屬性 p.brand = "蘋果6s";[為p中brand屬性賦值為”蘋果6s”] //訪問p中的color顏色屬性 p.color = "白色";[為p中color屬性賦值為”白色”] //訪問p中的方法 p.call(); } }
類和對象的區別: 類是對一類事物的抽象描述,而對象用於表示該事物的個體.
類中說包含的變量:
局部變量:在方法,構造方法或者語句塊中定義的變量稱為局部變量,變量的聲明和初始化都在方法中,方法結束後,變量會自動銷毀.
成員變量:成員變量定義在類中,方法變量以外的變量,在創建對象的時候初始化.成員變量可以被類中的方法,構造方法和特定類的語句塊訪問
類變量:也在聲明的類中,方法體之外,但是必須聲明為static類型
局部變量和成員變量的區別
區別一:定義的位置不同
定義在類中的變量是成員變量
定義在方法中或者{}語句裏面的變量是局部變量
區別二:在內存中的位置不同
成員變量存儲在對內存的對象中
局部變量存儲在棧內存的方法中
區別三:聲明周期不同
成員變量隨著對象的出現而出現在堆中,隨著對象的消失而從堆中消失
局部變量隨著方法的運行而出現在棧中,隨著方法的彈棧而消失
區別四:初始化不同
成員變量因為在堆內存中,所有默認的初始化值
局部變量沒有默認的初始化值,必須手動的給其賦值才可以使用。
(類變量之後在記)
new一個對象在內存中發生了什麽:
兩個變量又是什麽樣子
第六天 對象和類