java 物件導向編程整理一
三大特點:
封裝:Encapsulation
繼承:Inheritance
多態:Polymorphism
建立對象:
Person per = null; //聲明對象
per = new Person(); //執行個體化對象
或
Person per = new Person(); //聲明+執行個體化對象
對象的屬性存放在堆記憶體之中。
對象的方法存放在代碼區之中,面向全域。
NullPointerException是java的常見錯誤,表明有空指向。
一個棧記憶體可以分配多個堆記憶體空間
如:
Person per1 = null;
Person per2 = null;
per1 = new Person();
per2 = per1;
則per2中的屬性改變後per1的內容也改變!
private是對屬性的封裝方法,他對屬性起到了保護的作用!
構造方法中不能有return 值。
聲明對象時並不會調用構造方法。
構造方法不是必須的
一個類中如果沒有明確聲明一個構造方法,則系統自動產生一個無參的什麼都不做的構造方法
如果在類中聲明了帶參數的構造方法,則系統不會再次聲明無參構造方法。
構造方法可以重載
只要構造方法的參數類型或數目不同,則可以重載。
構造器和方法在下面三個方面區別:修飾符,傳回值,命名。
1。和方法一樣,構造器可以有任何訪問的修飾: public, protected, private或者沒有修飾(通常被package 和 friendly調用). 不同於方法的是,構造器不能有以下非訪問性質的修飾: abstract, final, native, static, 或者 synchronized。
2。傳回型別也是非常重要的。方法能返回任何類型的值或者無傳回值(void),構造器沒有傳回值,也不需要void。
3。兩者的命名。構造器使用和類相同的名字,而方法則不同。按照習慣,方法通常用小寫字母開始,而構造器通常用大寫字母開始。構造器通常是一個名詞,因為它和類名相同;而方法通常更接近動詞,因為它說明一個操作。
匿名對象
就是缺少了棧記憶體空間的使用來聲明對象,即直接使用new Person().tell();
類的設計分析