1.類和物件:類可以看成是一類物件的模板,物件可以看成是該類的乙個具體例項.
2.類(物件)之間的關係:聚合,繼承,實現,多型.
3.記憶體區分: 類是靜態概念,**區; 物件是new出來的,位於堆記憶體
4.構造方法(函式):(1)與類同名且沒有返回值
(2)用來初始化物件的函式
(3)new+構造方法,建立乙個新的物件
5.命名規則:類名的首字母大寫,變數名和方法首字母小寫,運用駝峰標識
6.棧記憶體存入乙個引用指向堆記憶體
7.方法過載(overload):相同名字,相同返回型別,當引數不同(個數不同或型別不同),的多個方法
8.static:用static宣告的成員變數稱為靜態的成員變數,公用變數,對於該類的所有物件來說static成員變數只有乙份
用static宣告的方法稱為靜態方法,在呼叫該方法時不會將物件的引用傳遞給他,所以static方法中不能訪問非
static的成員
可以通過物件引用或類名(不需要例項化)訪問靜態成員
9.訪問控制:
10.方法重寫(override):在子類中可以根據需要對父類中繼承來的方法進行重寫
11.equals:object的equals方法定義為:x.equals(y)當x和y是同一物件的引用時返回true否則返回false(等價於==)
string,date等類重寫了object中的equals()方法,x.equals(y)
當x和y所引用的是同一類物件且屬性內容相等時返回true.
12.多型:(1)要有繼承
(2)要有重寫
(3)父類引用指向子類物件
class animal
public voidenjoy()
}class dog extends animal
public void enjoy()
}class cat extends animal
public void enjoy()}
class lady
public void mypetenjoy()
}public class poolymoph
}輸出為:
貓叫聲......
狗叫聲......
總結:建乙個animal父類,寫其enjoy方法,在把cat、dog等類作為子類繼承animal類,並重寫其enjoy方法;最後把cat、pig這些類全部扔進籃子裡,呼叫其enjoy方法,就會自動地去呼叫cat、pig對應的enjoy方法。
13.抽象:抽象類必須被繼承,抽象方法必須重寫,含有抽象方法的類必須被宣告為抽象類
抽象類不能被例項化
抽象方法只需宣告,而不需實現
14.final:final的變數的值不能被改變,final的方法不能被重寫,final的類不能被繼承
15.介面:介面是抽象方法和常量之的定義和集合
從本質上講,介面是一種特殊的抽象類,這種抽象類中之包含常量和方法的定義,而沒有常量和方法的實現
介面特徵:1、介面可以多重實現
2、介面中宣告的屬性預設為public static final的,也只能是public static final的
3、介面中只能定義抽象的方法,而且這些方法預設為public,也只能是public的
4、介面可以繼承其他介面,並新增新的屬性和抽象方法
JAVA學習筆記 物件導向
寫類要重寫equals和hashcode,在類當作map中的key 鍵 時,一定要重寫hashcode,map中的鍵需要使用equals方法,該方法中呼叫了hashcode判斷是否相同。類中成員變數未手動初始化,虛擬機會自動進行初始化。而區域性變數不能自動初始化,提示該變數未初始化。public c...
java 學習筆記 物件導向(繼承)
將學生與工人的共性描述提取出來,單獨進行描述,只要讓學生和工人單獨描述這個類有關係,就可以了 繼承 1,提高了 的服用性。2,讓類與類之間產生了關係,有了這個關係,才有了多型的特性。注意 千萬不要為了獲取其他類的功能,簡化 而繼承。必須是類與類之間有所屬關係才可以繼承 class person st...
物件導向java學習筆記2
x abc y x和y指向同乙個。x abc y abc x和y的值相同。拓 char x abc char y abc x y的結果是false,判讀的是指標引用的記憶體位址不同 x y的結果是true,兩個指標位址所儲存的數值相同。例項1 package oolearning public cl...