JAVA學習筆記 物件導向

2021-08-07 19:35:11 字數 2622 閱讀 7842

寫類要重寫equals和hashcode,在類當作map中的key(鍵)時,一定要重寫hashcode,map中的鍵需要使用equals方法,該方法中呼叫了hashcode判斷是否相同。

類中成員變數未手動初始化,虛擬機會自動進行初始化。而區域性變數不能自動初始化,提示該變數未初始化。

public

class persion

}

區域性變數在棧,形參在棧,返回值在棧,物件的引用在棧;

物件在堆,物件的成員變數也在堆。

靜態變數,常量在資料區。

void fun1(int i)
this可以看作是乙個變數,它的值是當前物件的引用。

在類中,用static宣告的成員變數為靜態成員變數,它為該類的共有變數,在第一次使用時被初始化,對於該類的所有物件來說,static成員變數只有乙份。

用static宣告的方法為靜態方法,在呼叫該方法時,不會將物件的引用傳遞給它,所以在static方法中不可訪問非static的成員。

可以通過物件引用或類名(不需要例項化)訪問靜態成員。

ps:重寫方法不能比父類的許可權嚴格。

子類的構造的過程中必須呼叫其基類的構造方法。

子類可以在自己的構造方法中使用super(argument)_list)呼叫基類的構造方法。

ps:如果呼叫super,必須寫在子類構造方法的第一行。

如果子類的構造方法中沒有顯式地呼叫基類的構造方法,則系統預設呼叫基類無引數的構造方法。

public

class

superclass

superclass(int i)

public

static

void main(string args)

}class

subclass

extends

superclass

subclass(int i)

}/*結果:

superclass 無參構造

subclass 有參構造*/

如果子類構造方法中既沒有顯式的呼叫基類的構造方法,而基類中又沒有無參的構造方法(子類沒呼叫父類的構造方法,父類沒有無參的構造方法),則編譯出錯。

public

class

superclass

public

static

void main(string args)

}class

subclass

extends

superclass

subclass(int i)

}/*結果:出錯,父類沒有無參構造方法*/

物件導向的核心。

class person

public void mypetcry()

}-----------------------------------

cat a=new cat();

person p=new person(a);

p.mypetcry();

此處呼叫子類cat()中的cry方法,而不是基類animal的cry方法。

多型:

1. 要有繼承

2. 要有重寫

3. 父類引用指向子類物件

public

void fun1(final

int i)

classt}

class

ttextends

t //不能重寫,編譯錯誤

}final

class

ttt{}

class

tttt

extends

ttt{} //不能被繼承,編譯錯誤

public

inte***ce runner

介面特性

介面可以多重實現;

介面中宣告的屬性預設為public static final的;也只能是public static final的;

介面中只能定義抽象方法,而且這些方法預設為public的、也只能是public的;

介面可以繼承其他介面,並新增新的屬性和抽象方法。

舉例如下:

class

teacher

implements

painter,singger{}

//teacher實現了兩個介面

painter p=new teacher();

p.paint();p.sleep(); //只能訪問painter中的方法

sinngger s=(singger)p;

s.sing();s.eat(); //只能訪問sinnger中的方法

java物件導向學習筆記

1.類和物件 類可以看成是一類物件的模板,物件可以看成是該類的乙個具體例項.2.類 物件 之間的關係 聚合,繼承,實現,多型.3.記憶體區分 類是靜態概念,區 物件是new出來的,位於堆記憶體 4.構造方法 函式 1 與類同名且沒有返回值 2 用來初始化物件的函式 3 new 構造方法,建立乙個新的...

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...