面向對象的特性 :(1) 封裝性 、(2) 繼承性 、(3) 多態性
類與對象
類實際上是表示一個客觀世界中某類羣體的一些基本特徵抽象 ,屬於抽象的概念集合 。例如 :汽車 、輪船 、書 。類實際上是對象操作的模版 ,但是類不能直接使用 ,必須通過實例對象來使用 。類由屬性和方法組成 。
對象表示一個個具體的事物 。例如 :張三同學 、李四的汽車 、王五的賬戶 ,這些都是可以使用的事物 ,就可以理解爲對象 ,對象表示的是一個個獨立的個體 。
例如人的性別 、姓名 就被稱爲屬性 。喫飯、睡覺被稱爲方法 。
class Book{ //定義一個新的類
String title ; //書的名字
double price ; //書的價格
public void getInfo(){ //此方法由對象調用
System.out.println("圖書的名稱:"+title+",圖書的價格:"+price);
}
}
上述代碼定義了一個Book類 ,而方法getInfo()沒有加static 。和之前的代碼不同 ,可以先這樣理解 :由對象調用的方法不用加static ,如果不是由對象調用的方法 ,必須加上static 。
聲明並實例化對象
格式 :聲明並實例化對象
類名稱 對象名稱 =new 類名稱() ;
格式 :分步完成
聲明對象 : 類名稱 對象名稱 =null ;
實例化對象 :對象名稱 =new 類名稱() ;
操作對象
對象 . 屬性 ;
對象 . 方法 () ;
class Book{
String title ;
double price ;
public void getInfo(){
System.out.println("圖書的名稱:"+title+",圖書的價格:"+price);
}
}
public class TestDemo{
public static void main(String args[]){
Book bk =new Book(); //聲明並實例化對象
bk.title ="java開發大全" ;//操作屬性內容
bk.price =89.9 ;//操作屬性內容
bk.getInfo();//調用類中的方法
}
}
程序執行結果 :圖書的名稱 :java開發大全 ,圖書的價格 :89.9
堆內存 :只能依靠new來開闢 ,保存對象的真正數據 ,都是每一個對象的屬性內容 。
棧內存 :保存一塊堆內存的地址 。
引用傳遞
class Book{
String title ;
double price ;
public void getInfo(){
System.out.println("圖書的名稱:"+title+",圖書的價格:"+price);
}
}
public class TestDemo{
public static void main(String args[]){
Book bkA =new Book(); //聲明並實例化對象
bkA.title ="java開發大全" ;//操作屬性內容
bkA.price =89.9 ;//操作屬性內容
Book bkB =null ;
bkB = bkA ;
bkB.title ="jsp開發";
bkA.getInfo();//調用類中的方法
}
}
程序執行結果 :圖書的名稱 :jsp開發大全 ,圖書的價格 :89.9
可以理解爲bk儲存的是一塊棧內存 ,棧內存用來指向一塊堆內存 ,堆內存中存儲着對象的屬性 。