Java物件導向的三個特性

2021-09-22 07:56:34 字數 1597 閱讀 8814

類: 變數、方法(屬性)、構造器

類、物件、成員變數、構造器、方法必須通過物件來呼叫

要點

animal a =

newdog()

;

a首先是乙個animal型別的引用,a又是乙個dog型別的物件

編譯器:a是animal型別 -> 編譯時型別

jvm:a是dog型別 -> 執行時型別

1.過載:同乙個類中,方法名相同,引數不同,和方法返回值型別相同

2.重寫:向上造型,執行時執行的是重寫過的方法

——父子類中,方法簽名和父類方法簽名完全一致,返回值型別也要相同

3.向上造型:只能呼叫父類型別,想呼叫子類必須強轉

——好處:統一型別

成員變數屬於個人/私有

私有的——private

將成員變數私有化,提供get/set方法——屬性

訪問控制符+修飾詞+類/方法名/變數名

訪問控制符

1.修飾成員變數

儲存在方法區中,所有這個類的物件公用的,只有乙份有類的時候就有靜態成員變數

2.修飾方法

通過類名呼叫,不能直接使用普通的

3.靜態**塊

類載入的時候呼叫,需要載入大量資源的時候使用

4.修飾內部類

final:最終的,不能別修改的

1.修飾變數(成員變數/區域性變數)

是常量故不可被修改

字面量(如:1、2、3.14、true、false、null等)

使用之前必須初始化

final成員變數初始化:1.每個構造器中 2.**塊中 3.宣告的同時

2.修飾方法

不能被子類重寫

3.修飾類

不能被繼承

static+final:修飾成員變數——靜態的常量,在宣告的同時、**塊中初始化

abstract:抽象類的意義——被繼承

——故與final不可同時用

1.修飾類

抽象類(可以有抽象方法的類)-> abstract修飾的類

可以有子類,提供給構造器預設呼叫

不能例項化,靠子類來例項化

final成員變數初始化:1.每個構造器中 2.**塊中 3.宣告的同時

2.修飾方法

抽象方法:不能實現的方法,不知道具體實現;沒有方法體,靠子類來實現/重寫

有抽象方法的類一定是抽象類

inte***ce:介面(乙個特殊的抽象類)

沒有構造器,不能例項化

意義:被實現——implements——擴充套件功能

方法預設:public abstract

變數:public static final

類與介面之間的關係

類-類extends 1-1

類-介面

implements 1-n

介面-介面

extends 1-n

介面-類

類無法被介面繼承/實現

物件導向的三個特性

背景 物件的例項變數能被隨意的呼叫,例 student.score 98 可視為遠端控制修改student的例項變數 如果有人設定為student.score 0 會造成嚴重的後果 solution 對所有的例項變數建立setter方法,強制呼叫程式必須呼叫setter方法對例項變數進行訪問。pri...

C 物件導向的三個特性

c 的三個特性 繼承 多型 封裝 繼承 派生類。子類會繼承父類的方法和成員變數。多型 過載 函式過載和運算子過載 和虛函式 虛函式和純虛函式 同樣的函式名 運算子 執行不同的函式實體 操作 封裝 類是 物件導向程式設計語言中的乙個概念。類是對某個物件的定義。它包含有關物件動作方式的資訊,包括它的名稱...

物件導向的三個特性 封裝

物件導向的三個特性 封裝 繼承 多型 1.封裝 目的 讓類更加安全,不讓外界直接訪問類的成員 具體做法 將成員設為私有 訪問修飾符 class ren r new ren echo r age 訪問不到 造成員方法來操作變數 class ren function getage r new ren r...