類: 變數、方法(屬性)、構造器
類、物件、成員變數、構造器、方法必須通過物件來呼叫
要點:
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...