標籤:存在 筆記 class this nali his 執行個體 本地 特徵
第四章 對象與類
oop三個特徵:對象的行為、狀態、標識
類之間關係:依賴,彙總,繼承
依賴:一個類的方法操縱另一個類的對象。(盡量減少這種耦合情況)
彙總(has-a)一個類作為另一個類的變數而存在
繼承(is-a)
如果只聲明一個類變數,而沒有在堆空間中開闢沒存,
那麼這個變數就不能調用類中的方法
因為這個變數沒有引用對象
!!一個對象的變數並沒有實際包含一個對象,而僅僅引用了一個對象
Data data;
等同於:
Data *data; //它只代表一個指標,而不擁有對象資料
get/set 訪問器
一個源檔案中只有一個公有類
javac <==> make 對包含main方法的類編譯,運行時會自動編譯其他相關類
也可以使用萬用字元*
c++在類內部定義的方法為內聯方法
java中,虛擬機器會自動的監視調用經常被調用、可最佳化的方法
不要編寫返回引用可變對象的訪問器方法,如果要使用,應當返回一個clone副本
class Employee
{
。。。
private Data getHireDay();
{
return hireDay.clone(); //防止給其他Data變數賦值時的混肴狀態
}
}
final和static
/////////////////////////////
static:
c:保留局部變數資料。資料具有本地隱藏性
c++:該變數屬於整個類而不是屬於具體對象
/////////////////////////////
main() ;測試技巧:每個類都可以有一個main方法,並且可以單獨運行一個類。運行程式則可以 java Application ,其他非啟動類類中的main方法都不會運行
java都是值傳遞
一個方法不能修改一個基礎資料型別 (Elementary Data Type)的參數(數值、布爾)
一個方法可以改變一個對象參數的狀態
一個方法不能讓對象參數引用一個新的對象
方法名與參數列表共同組成方法簽名
java初始化對象: 再回來看看!!
重載構造器
this調用其它構造器
無參數構造器
對象初始化塊
靜態初始化塊
執行個體域初始化
對象析構:finalize 不推薦 不知道什麼時候調用
包與引入包 import 類似於引用命名空間
package == namespace
import == using
靜態匯入
類設計技巧
1)保證資料私人
2)對資料初始化
3)不要在類中過多的使用基本類型(可以使用彙總關係代替)
4)不是所有的域都需要獨立的訪問器與更改器
5)將職責過多的類進行分解
6)類名與方法名應該能體現他們的職責
java學習筆記(Core Java)4 對象與類