1.static:靜態的
靜態不能直接呼叫非靜態,非靜態可以呼叫靜態
1)靜態變數:物件共有的屬性可以定義為靜態
1.1)由static修飾
1.2)屬於類的,存在方法區中,只有乙份,隨著類載入而使用
1.3)常常通過類名.來訪問
1.4)何時用:所有物件的資料一樣時使用
2)靜態方法:
2.1)由static修飾
2.2)屬於類的,存在方法區中,只有乙份
2.3)常常通過類名.來訪問
2.4)沒有隱式的this傳遞
靜態方法中不能直接訪問例項成員
3)靜態塊:
3.1)由static修飾
3.2)屬於類的,類被載入期間自動執行
類只被載入一次,所以靜態塊也只執行一次
2.final:不能變
2)修飾方法:方法不能被重寫
3)修飾類:類不能被繼承
3.static final常量:
1)必須宣告同時初始化
2)不能改變,通過類名點來訪問
3)建議:常量名所有字母都大寫
4)在編譯時被直接替換為具體的值,效率高
4.抽象方法:
1)由abstract修飾
2)只有方法的定義,沒有方法的實現(沒有大括號)
abstract void eat();
5.抽象類:
1)由abstract修飾
2)包含抽象方法的類必須是抽象類,乙個類中如果包含抽象方法,該類應用abstract關鍵字宣告為抽象類。
不包含抽象方法的類也可以宣告為抽象類
如果乙個類繼承了抽象類,必須重寫其抽象方法
(除非該類也宣告為抽象類)。
3)抽象類不能被例項化(不能new物件)
4)抽象類是需要被繼承的,子類:
4.1)子類重寫所有抽象方法---常用
4.2)子類也宣告為抽象類-----不常用
5)抽象類的意義:
5.1)包含公共的屬性和行為,被子類所共享--**的重用
5.2)為所有子類提供一種統一的型別--向上造型
5.3)包含抽象方法:為所有子類提供乙個統一的入口
子類有不同的實現
6.介面:
1)是乙個標準、規範
遵守了這個標準,就能幹某件事
2)由inte***ce定義
3)只能包含常量和抽象方法(介面是抽象類)
4)介面不能被例項化
5)介面是需要被實現的/繼承的,實現類/子類:
必須重寫介面中的所有抽象方法(被重寫的方法
必須被public修飾)
6)乙個類可以實現多個介面,用逗號分隔,
若又繼承又實現時,應先繼承extends後實現implements
7)介面可以繼承介面
類對類--------單繼承
介面對介面----多繼承
類和介面------多實現
7.設計原則:
1.將公共的屬性和行為封裝到父類中
2.所有子類的行為都一樣----普通方法
所有子類的行為不一樣----抽象方法
3.若符合既是也是原則時,使用介面;
若方法是部分子類的共有行為---介面
若方法是所有子類的共有行為---父類
8.多型
1)意義:
1.1)同一型別的引用指向不同的物件時,有不同的實現
-----行為的多型:cut(),run()
1.2)同一物件被造型為不同的型別時,有不同的功能
-----物件的多型:水,我
2)向上造型:小到大
(子類造型為父類,父型引用指向子類物件)
2.1)父型別的引用指向子類的物件
2.2)能造型成的型別有:
父型別、實現的介面
2.3)能點出來什麼,看引用的型別
3)強制型別轉換,成功的條件:
3.1)引用所指向的物件,就是該型別
3.2)引用所指向的物件,實現了該介面
aoo o1 = new boo();//向上造型
boo o2 = (boo) o1;//符合條件1
4)建議強轉之前通過instanceof來判斷引用是否是某種型別
instanceof返回boolean結果
強轉成功的條件就是它為true的條件
system.out.println(o1 instanceof boo);//true
9.內部類:
1)成員內部類:不太常用
1.1)類中套類,外面的叫外部類,裡面的叫內部類
1.2)內部類通常只服務於外部類,對外不具備可見性
1.3)內部類物件通常是在外部類中建立的
1.4)內部類中可以直接訪問外部類的成員(包括私有的)
內部類中有個隱式的引用指向建立它的外部類
語法:外部類名.this.
2)匿名內部類:常用
2.1)如果想建立乙個類的物件,並且物件只被建立一次,
此時該類不必命名,稱為匿名內部類。
2.2)在匿名內部類中訪問外部的資料,該資料必須是final的
物件導向 03
類屬性和例項屬性的概念 類屬性是給類物件 類是乙個特殊的物件 中定義的屬性,通常用來記錄與這個類相關的特徵,類屬性不會用於記錄具體物件的特徵。類屬性的定義是在初始化方法之外的 例項物件的屬性叫做例項屬性,在初始化方法內部定義 類屬性和例項屬性的訪問 類屬性的訪問是類名.類屬性 例項屬性的訪問是例項物...
物件導向03
將資料 屬性 和行為 方法 包裝到類物件中,在方法內部對屬性進行操作,在類物件的外部呼叫方法 在類物件的內部通過訪問控制把某些屬性和方法隱藏起來,不允許在類物件外部直接訪問,而是在類物件內部對外提供公開的介面方法以訪問隱藏的資訊。介面class student object def init sel...
python 物件導向 03 物件導向基礎語法
在python中可以使用以下兩個方法驗證 在識別符號 資料後輸入乙個.然後按下tab鍵,ipython會提示該物件能夠呼叫的方法列表 使用內建函式dir傳入識別符號 資料,可以檢視物件內的所有屬性及方法 提示 方法名 格式的方法是python提供的內建方法 屬性,稍後會給大家介紹一些常用的 內建方法...