




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、類是對象的抽象,將對象的屬性和行為類是對象的抽象,將對象的屬性和行為抽抽象為類中的數據和方法。象為類中的數據和方法。extends 關鍵字用于繼承類。關鍵字用于繼承類。super關鍵字用來解決如何直接訪問或初始關鍵字用來解決如何直接訪問或初始化從父類繼承來的屬性化從父類繼承來的屬性 。構造函數名稱與類的名稱相同,且沒有返構造函數名稱與類的名稱相同,且沒有返回類型。回類型。方法重載和方法覆蓋是方法重載和方法覆蓋是Java實現多態性機實現多態性機制的方式。制的方式。 掌握類的靜態成員掌握類的靜態成員 掌握掌握final關鍵字用法關鍵字用法 掌握抽象類的定義和用法掌握抽象類的定義和用法 掌握接口的定
2、義和用法掌握接口的定義和用法 了解內部類的概念了解內部類的概念 類中的靜態變量、方法或代碼塊屬于類,類中的靜態變量、方法或代碼塊屬于類,而不屬于某個特定的對象。而不屬于某個特定的對象。 類的靜態成員可以與類的名稱一起使用,類的靜態成員可以與類的名稱一起使用,而無需創建類的對象。而無需創建類的對象。 靜態變量或方法也稱為類的變量或方法。靜態變量或方法也稱為類的變量或方法。用用static修飾符修飾,修飾符修飾,可以是變量、方法或代可以是變量、方法或代碼塊碼塊 不管創建了類的多少實例,整個類中靜態不管創建了類的多少實例,整個類中靜態變量的副本只有一個。變量的副本只有一個。 引用靜態變量的方法:引用
3、靜態變量的方法:- 通過引用類的任一實例通過引用類的任一實例- 通過類的名稱通過類的名稱class StaticDemo static int x = 0; StaticDemo()x+;StaticDemo d1 = new StaticDemo();StaticDemo d2 = new StaticDemo();d1.x = 100 ;d2.x = 200;testVariable = d1.x; 通過類實例訪問通過類實例訪問不是一個好方法不是一個好方法StaticDemo d1 = new StaticDemo();StaticDemo d2 = new StaticDemo(); S
4、taticDemo.x = 100;StaticDemo.x = 200;testVariable = StaticDemo.x; 聲明為聲明為static的變量實質的變量實質上就是全局變量上就是全局變量通過類名訪問通過類名訪問 靜態的東西屬于類靜態的東西屬于類 靜態數據成員只在這個類的第一個對象要靜態數據成員只在這個類的第一個對象要創建的時候初始化創建的時候初始化 Case: StaticIntialization.java 類型為類型為Dog的一個對象首次創建時,或者的一個對象首次創建時,或者Dog類的類的靜態方法靜態方法/數據首次訪問時,數據首次訪問時,Java解釋器必須找到解釋器必須找
5、到Dog.class。 找到找到Dog.class后,它的所有的靜態初始化模塊都后,它的所有的靜態初始化模塊都會運行。而且靜態初始化僅發生一次。會運行。而且靜態初始化僅發生一次。 創建一個創建一個new Dog()時,時,new 語句首先會在堆里分語句首先會在堆里分配一個足夠的空間。配一個足夠的空間。 這個空間將會被清除為零,因此這個空間將會被清除為零,因此Dog中的所有的數中的所有的數據成員都得到了缺省值。據成員都得到了缺省值。 執行定義初始化,最后是構造函數。執行定義初始化,最后是構造函數。 與靜態方法相關的幾個要點:與靜態方法相關的幾個要點:類的靜態方法只能訪問其他的靜態成員類的靜態方法
6、只能訪問其他的靜態成員靜態方法沒有靜態方法沒有this靜態方法不能被覆蓋為非靜態方法靜態方法不能被覆蓋為非靜態方法class StaticFun static int i = 10; int j; static void setValue(int x) j=x;/出錯出錯 System.out.println( + i); 不能訪問非靜態變量不能訪問非靜態變量j,可以訪問靜態變量可以訪問靜態變量iclass StaticTest static void test() class Staticex extends StaticTest void test() /出錯出錯 如果需要通過計算來初始化
7、靜態變量,可如果需要通過計算來初始化靜態變量,可以聲明一個靜態塊。以聲明一個靜態塊。 靜態塊僅在該類被加載時執行一次。靜態塊僅在該類被加載時執行一次。 只能初始化類的靜態數據成員。只能初始化類的靜態數據成員。 class TryInitialization static int values = new int10; /靜態數組成員靜態數組成員 static for(int i=0; ivalues.length; i+) valuesi = (int)(100.0*Math.random(); final 修飾符可應用于類、方法和變量。修飾符可應用于類、方法和變量。 final在應用于類、方
8、法和變量時意義是不同在應用于類、方法和變量時意義是不同的,但本質是一樣的:的,但本質是一樣的:final表示不可改變。表示不可改變。 聲明為聲明為final的類不能被繼承。的類不能被繼承。 final 類示例:類示例: java.lang.String final class TestFinal int i = 7; int j = 1; void f() class Further extends TestFinal final類不能被繼承類不能被繼承 一個變量可以聲明為一個變量可以聲明為final,這樣做的目的是這樣做的目的是阻止它的內容被修改。阻止它的內容被修改。 聲明聲明final變量
9、后,只能被初始化一次,然后變量后,只能被初始化一次,然后就不能對其值進行修改就不能對其值進行修改。 Case: FinalData.javaclass FinalDemo public static void main(String args) final int noChange = 20; noChange = 30; final變量不能被變量不能被修改修改 在方法聲明中使用在方法聲明中使用 final 關關鍵字向編譯器表鍵字向編譯器表明子類不能覆蓋此方法明子類不能覆蓋此方法。 在聲明類中,一個在聲明類中,一個 final 方法只被實現一次。方法只被實現一次。 如果一個類為如果一個類為 f
10、inal 類,那么它的所有方法類,那么它的所有方法都為隱式的都為隱式的 final 方法方法。class TestFinal final void f() class Further extends TestFinal final void f() final方法不能方法不能被覆蓋被覆蓋draw()erase()draw()erase()ShapeCircleTriangledraw()erase() 定義抽象類的目的是提供可由其子類共享定義抽象類的目的是提供可由其子類共享的一般形式。的一般形式。 子類可以根據自身需要擴展抽象類。子類可以根據自身需要擴展抽象類。 抽象類抽象類不能不能實例化。實
11、例化。 抽象方法沒有抽象方法沒有函數體函數體。 抽象方法抽象方法必須必須在子類中給出具體實現。在子類中給出具體實現。abstract 修飾符可修飾符可與類和方法一起與類和方法一起使用使用 在以下情況下,某個類將成為抽象類:在以下情況下,某個類將成為抽象類: 當一個類的一個或多個方法為抽象方法時。當一個類的一個或多個方法為抽象方法時。當該類為一個抽象類的子類,并且沒有為所有當該類為一個抽象類的子類,并且沒有為所有抽象方法提供實現細節或方法主體時。抽象方法提供實現細節或方法主體時。當一個類實現一個接口,并且沒有為所有抽象當一個類實現一個接口,并且沒有為所有抽象方法提供實現細節或方法主體時。方法提供
12、實現細節或方法主體時。abstract class Employee int basic = 2000; abstract void salary();/抽象方法抽象方法class Manager extends Employee void salary() System.out.println(薪資等于薪資等于 +basic*5); class Worker extends Employee void salary() System.out.println(薪資等于薪資等于 +basic*2); 抽象方法沒有抽象方法沒有方法主體方法主體在子類中提供在子類中提供實現實現在子類中提供在子類中提供
13、實現實現 一個接口允許一個類從幾個接口繼承而來。一個接口允許一個類從幾個接口繼承而來。 Java 程序一次只能繼承一個類但可以實現幾程序一次只能繼承一個類但可以實現幾個接口。個接口。 接口不能有任何具體的方法。接口不能有任何具體的方法。 接口也可用來定義可由類使用的一組常量。接口也可用來定義可由類使用的一組常量。 接口提供接口提供“is a”關系。關系。 / / 有方法的接口有方法的接口public interface myinterface public void add(int x, int y);public void volume(int x,int y, int z);/ / 定義程
14、序使用的常量的接口定義程序使用的常量的接口public interface myconstants public static final double price = 1450.00; public static final int counter = 5; 定義一個接口:定義一個接口: 編譯如下:編譯如下:javac myinterface.java 用關鍵字用關鍵字 implements 實現接口,例如:實現接口,例如:class demo implements myinterface 如果有一個以上接口被實現,則用逗號隔開如果有一個以上接口被實現,則用逗號隔開接口名稱,如下所示:接口名稱,如下所示: class demo implements Mycalc, Mycountinterface A double g=9.8; void show( );class InterfaceTest public static void main(String args ) B b=new B( ); b.show( ); class B implements A public void show( ) System.out.println(“g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鐵路旅客運輸服務鐵路旅客服務心理課件
- 設計圖紙共享協議
- 鐵路旅客運輸服務站臺服務46課件
- 思考與訓練下一頁課件
- 攤鋪機保養間隔VolvoConstructionEquip
- 礦山充填塔拆除施工方案
- 鐵道概論肖慧52課件
- 中國京劇簡介
- 房產交易定金合同:賣方與買方互惠協議
- 餐飲店鋪承包合同
- 酒精計法測定酒精中酒精度
- 嬰幼兒語言發育篩查量表
- 川教版生命生態安全一年級上冊第12課 做一個受歡迎的人 教學設計
- 油氣輸送管道高后果區識別與評價釋義
- 高價值專利挖掘布局
- 托業考試TOEIC詞匯匯總
- DL-T 736-2021 農村電網剩余電流動作保護器安裝運行規程
- SB/T 10439-2007醬腌菜
- FZ/T 62034-2016磁性軟紗門
- 情緒管理(終極詳細版)-課件
- 硬件開發流程圖
評論
0/150
提交評論