物件導向知識總結(3)

2021-07-06 03:40:13 字數 2701 閱讀 9928

物件導向

的 繼承、封裝、多型

記憶體中用到哪個類才會載入該類的位元組碼檔案進記憶體,沒有執行該類則不載入。

super不代表當前父類物件,代表當前父類空間

成員變數:不可以用

abstract修飾,

只允許使用「公用」、「受保護」、「私有」、「靜態」、「終態」、「瞬態」或「易變」

構造器:只能用 public, protected & private 預設的 修飾,其他的全部行

成員方法:

abstract 和 final 不能同時修飾方法,因為兩個意義衝突。

封裝:屬性私有,公共方法獲取和設定

成員修飾符

sataic 修飾成員變數:記憶體靜態區(共享區) , 叫做靜態變數、全域性變數、類變數

建構函式:建立物件並對物件初始化。

1.類中沒有定義建構函式,系統新增空參建構函式。

2.類中自己定義建構函式,則系統不再新增預設空參建構函式。

3.建構函式第一行或缺省呼叫父類空參建構函式,也可以顯示使用super呼叫父類有參建構函式。

4.類中構造函式呼叫自己的其他建構函式this指向,不會再新增父類建構函式,但子類物件被呼叫的的建構函式會呼叫父類建構函式。

new物件執行順序:

1.類成員變數初始化

2.子類構造器進棧,執行父類的構造器

3.成員變數顯示初始化

4.構造**塊初始化

5.本類構造器初始化

成員函式:

1.被static修飾的成員方法中只能呼叫static修飾的變數和函式

2.被static修飾的方法中不能使用this和super關鍵字

在方法中的**塊:區域性**塊 和 靜態**塊

(方法函式中)區域性**塊:{}

規定變數的作用範圍,一旦作用域結束,立即被釋放。

靜態**塊:static{}

隨著類的載入而執行,只執行一次,給類初始化靜態成員

(類的成員中)

構造**塊:

{}每次建立物件是都執行,初始化類成員變數

繼承:1.單繼承 is-a關係 (多繼承只有一種介面可以多繼承介面);多介面實現 like-a關係

2.子類繼承父類中的private成員,但是不能訪問。

3.子類和父類擁有相同成員是用this和super區分想用哪個

4.方法的重寫:重寫的函式訪問許可權一定要大於被重寫的函式許可權;靜態函式只能重寫靜態函式

abstract 抽象類  (被繼承 extends)

如果成員方法是abstract修飾,則類一定是abstract修飾,但是類是abstract修飾,成員可以乙個都不用abstract修飾。

抽象類有建構函式:private、final、static不能修飾建構函式。建構函式被子類繼承。

inte***ce 介面 (被實現implements)  (介面可以繼承多介面,因為多個介面有相同的函式時會被覆蓋)

成員1.全域性常量:預設修飾符 public static final    ,不能定義變數,即使不加修飾符也被預設的

public static final 修飾

2.抽象方法:預設修飾符 public abstract

,必須全部是抽象方法,即使不加修飾符也被預設的

public abstract 修飾

介面好處:功能擴充套件、低耦合性、多實現

多型:

弊端:前期**不能呼叫後期物件的特有方法

使用前提,繼承或實現父類或介面並且覆蓋了方法

成員變數:編譯看左邊,執行看左邊

成員方法:編譯看左邊,執行看右邊

內部類

內部類編譯時也會生成自己的類位元組碼檔案,樣式如 outer$inner.class

內部類可以直接訪問外部類的所有成員(包括private),因為內部類持有外部類的引用outer.this;外部類訪問內部類必須建立物件訪問

內部類方法中呼叫內部類變數使用this關鍵字;內部類方法中呼叫外部類成員變數使用outer.this

1.內部類是外部類成員(外部類非靜態)

非靜態內部類:其他類訪問內部類方法,outer.inner in = new outer().new inner();

靜態內部類:其他類訪問內部類方法,outer.inner in = new outer.inner();

靜態內部類中定義並呼叫靜態方法:outer.inner.show(); 類名直接呼叫

錯誤:非靜態內部類定義靜態方法呼叫:錯誤,如果內部類中定義靜態成員,則該類必須是靜態的。

2.區域性內部類(外部類的乙個方法裡定義內部類)

1.外部類其他成員函式不能直接建立和呼叫內部類

2.注意:外部類方法中有變數和內部類,如果內部類中呼叫方法中的變數,方法中的變數必須用final修飾。

3.匿名內部類

前提:內部類必須繼承或實現乙個外部類或介面

3.1方法一

new 父類構造器() ;

show2();

}.show1() ;

好處:可以呼叫匿名內部類中自己定義的函式。

壞處:只能呼叫乙個函式

3.2方法二 (將匿名內部類賦值給父類物件)

fu f = new 父類構造器() ;

show2(); }

f.show1();

f.show2();

好處:可以呼叫多個方法

壞處:不能呼叫父類中沒有定義的方法,自己新增的函式不能被呼叫

Java物件導向知識總結

1形參個數可變的方法 最後乙個引數型別後面的 public static void test int a,string.strings system.out.println a public static void main string args 2.無論是通過類還是通過例項來訪問類變數其實訪問的...

JavaScript物件導向 總結相關知識點

物件導向相關概念 js是一種基於物件的語言,和其他物件導向語言不同 物件 引用型別是一種資料結構,將資料結構和功能組織在一起,常被稱為類 某個特定引用型別的例項 引用型別 物件重點 this 指 1 在普通函式下 this指向的是 window 2 有事件源指向事件源本身 3 在定時器下 除es6 ...

物件導向知識點總結

1 物件導向的特徵 物件導向的三個基本特徵是 封裝 繼承 多型。封裝 也就是把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類或者物件操作,對不可信的進行資訊隱藏。繼承 物件導向程式設計 oop 語言的乙個主要功能就是 繼承 繼承是指這樣一種能力 它可以使用現有類的所有功能,並在無需...