接口、內(nèi)部類和Java-API基礎(chǔ)課件_第1頁
接口、內(nèi)部類和Java-API基礎(chǔ)課件_第2頁
接口、內(nèi)部類和Java-API基礎(chǔ)課件_第3頁
接口、內(nèi)部類和Java-API基礎(chǔ)課件_第4頁
接口、內(nèi)部類和Java-API基礎(chǔ)課件_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、第4章 接口、內(nèi)部類和Java API 基礎(chǔ)4.1 接口4.2 內(nèi)部類和內(nèi)部接口4.3 java.lang包中的基礎(chǔ)類庫4.4 java.util包中的工具類庫1.3.3 包2022/7/2714.1 接口4.1.1 接口與實現(xiàn)接口的類4.1.2 用接口實現(xiàn)多繼承 接口提供方法聲明與方法實現(xiàn)相分離的機制,使多個類之間表現(xiàn)出共同的行為能力。接口機制使Java具有實現(xiàn)多重繼承的能力。2022/7/2724.1.1 接口與實現(xiàn)接口的類1. 聲明接口public interface 接口 extends 父接口 public static final 數(shù)據(jù)類型 成員變量=常量值; public abs

2、tract 返回值類型 成員方法(參數(shù)列表); 在Java中,接口是一種引用數(shù)據(jù)類型,是一組常量和抽象方法的集合。例如:public interface Area /可計算面積接口 public abstract double area(); /計算面積2022/7/2732. 聲明實現(xiàn)接口的類格式:修飾符 class 類 extends 父類implements 接口列表例如: public class Rectangle implements Area4.1.1 接口與實現(xiàn)接口的類(續(xù))【例4.1】 可計算面積接口與實現(xiàn)該接口的矩形類。2022/7/2743. 接口是一種引用數(shù)據(jù)類型Are

3、a g = new Rectangle(10,20); /接口變量g引用實現(xiàn)接口的類的對象System.out.println(g.toString(); /執(zhí)行Rectangle的方法g = new Ellipse(10,20); /g引用橢圓對象System.out.println(g.toString(); /執(zhí)行Ellipse的方法4.1.1 接口與實現(xiàn)接口的類(續(xù))【例4.2】可計算體積接口與實現(xiàn)該接口的長方體類。2022/7/275【例4.3】 球類實現(xiàn)多個接口。4.1.1 接口與實現(xiàn)接口的類(續(xù))2022/7/276接口及接口中成員的訪問權(quán)限都是public。接口中的成員方法都是

4、公有的、抽象的實例成員方法。 public abstract接口中的所有抽象方法必須全部被實現(xiàn)接口的類覆蓋。接口中的成員變量都是常量。public static final接口不能被實例化。接口是引用數(shù)據(jù)類型,可以聲明接口的變量。 Area g = new Rectangle(10,20); 4. 接口的特點4.1.1 接口與實現(xiàn)接口的類(續(xù))2022/7/2774.1.2 用接口實現(xiàn)多繼承一個類可以繼承一個父類并實現(xiàn)多個接口public interface AreaVolumn extends Area,Volumepublic class Globe implements AreaVolu

5、me2022/7/278相同點:兩者都包含抽象方法。兩者都不能被實例化。兩者都是引用數(shù)據(jù)類型。 不同點:抽象類約定多個子類之間共同使用的方法;接口約定多個互不相關(guān)類之間共同使用的方法。抽象類與子類之間采用單重繼承機制;一個類實現(xiàn)多個接口則實現(xiàn)了多重繼承的功能。抽象類及其類中成員具有與普通類一樣的訪問權(quán)限;接口的訪問權(quán)限有public和默認(rèn)兩種,接口中成員的訪問權(quán)限均是public。抽象類中可以包含非抽象方法,也可以聲明構(gòu)造方法;接口中的方法全部是抽象方法,不能聲明構(gòu)造方法。抽象類中可以聲明成員變量,子類可以對該成員變量賦值;接口中只能聲明常量。 2. 接口與抽象類的比較4.1.2 用接口實現(xiàn)多

6、繼承(續(xù))2022/7/2794.2 內(nèi)部類和內(nèi)部接口 類與類之間除了繼承關(guān)系,還存在嵌套關(guān)系,即一個類可以聲明包含另一個類,被包含的類稱為內(nèi)部類(內(nèi)嵌類型),包含內(nèi)部類的類稱為外部類(外層類型)。內(nèi)嵌類型既有類型的特性,也有類中成員的特性。public class Line /直線類,外層類型 class Point /點類,內(nèi)嵌類型1作為類型的特性內(nèi)嵌類型不能與外層類型同名。內(nèi)部類中可以聲明成員變量和成員方法。內(nèi)部類可以繼承父類或?qū)崿F(xiàn)接口。內(nèi)部類可以聲明為抽象類或內(nèi)部接口。2022/7/2710使用點運算符“.”引用內(nèi)嵌類型:外層類型.內(nèi)嵌類型 Line.Point彼此信任,能訪問對方的所

7、有成員。具有類中成員的4種訪問控制權(quán)限。內(nèi)部接口總是靜態(tài)的。2作為成員的特性4.2 內(nèi)部類和內(nèi)部接口(續(xù))【例4.4】 直線類聲明內(nèi)嵌的點類和方向接口。2022/7/27111.3.3 包1問題的提出2什么是包從邏輯概念看,包(package)是類的集合,一個包中包含多個類;從存儲概念看,包是類的組織方式,一個包對應(yīng)一個文件夾,一個文件夾中包含多個字節(jié)碼文件;包與類的關(guān)系,就像文件夾與文件的關(guān)系一樣。包中還可以再有子包,稱為包等級,子包對應(yīng)一個子文件夾。為解決字節(jié)碼文件存放和類命名的問題,Java提供了包機制。2022/7/27121.3.1 包(續(xù))創(chuàng)建與包同名的文件夾 F:myjavamy

8、package聲明類所在的包 package 包1.包2; 例如:package mypackage; /聲明所在的包引用包中的類 包1.包2.類|接口導(dǎo)入包 import 包1.包2.類|接口|*; 例如:import mypackage.Line; import java.awt.*;默認(rèn)包路徑:當(dāng)前文件夾 3創(chuàng)建、聲明和導(dǎo)入包【例1.4】 創(chuàng)建及使用包。2022/7/27131.3.1 包(續(xù))Java源程序結(jié)構(gòu)package /聲明包,01句import /導(dǎo)入包,0多句public class 或interface/聲明公有類或接口, 01 句,文件名與該名相同class/聲明默認(rèn)類

9、,0多句interface/聲明接口,0多句2022/7/2714Java的常用包查看Java包中的類查看Java的源程序及包等級導(dǎo)入Java的包java.lang 語言包java.util 實用包java.awt 抽象窗口工具包java.appletjava.io 輸入輸出流包 網(wǎng)絡(luò)包java.sql 數(shù)據(jù)庫應(yīng)用javax.swing 圖形用戶界面import java.util.Date; import java.awt.*;解壓JDK幫助文檔jdk-?-doc.zip解壓src.zip1.3.1 包(續(xù)) Java API基礎(chǔ)2022/7/2715Object類Math數(shù)學(xué)類Compar

10、able接口基本數(shù)據(jù)類型包裝類String字符串類Class類操作類System系統(tǒng)類Runtime運行時類補充例:猜數(shù)游戲(Guess.java) 獲得運行時信息(Runtimeinfo.java)4.3 java.lang包中的基礎(chǔ)類庫2022/7/2716【補充例】計算程序執(zhí)行的時間/Elapsed.javapublic class Elapsed public static void main(String args) long start, end, sum = 0; System.out.println( a loop from 0 to 1,000,000,000); start

11、 = System.currentTimeMillis(); for (int i = 0; i 1000000000; i+) sum = sum + i * i; end = System.currentTimeMillis(); System.out.println(Elapsed time: + (end - start); 2022/7/2717【補充例】執(zhí)行Java外部程序/ExecDemo.javapublic class ExecDemo public static void main(String args) Runtime r = Runtime.getRuntime();

12、 Process p = null; try p = r.exec(notepad); /程序暫停1秒鐘 Thread.sleep(1000); /關(guān)閉外部程序 p.destroy(); /改為p.waitFor() catch (Exception e) System.out.println(Error executing notepad.); 2022/7/27184.4 java.util包中的工具類庫4.4.1 日期類4.4.2 Arrays數(shù)組類4.4.3 Random隨機數(shù)序列類 2022/7/27194.4.1 日期類1Date日期類2Calendar類【例4.5】 月歷?!狙a充

13、例】獲得系統(tǒng)當(dāng)前日期和時間,并按指定格式輸出?!狙a充例】 CalculateDay.java2022/7/27204.4.2 Arrays數(shù)組類比較兩個數(shù)組是否相等public static boolean equals(int a, int b) public static boolean equals(Object a, Object b) 填充public static void fill(int a, int val) 排序public static void sort(Object a)public static void sort(T a, Comparator c) 二分法(折半)查找public static int binarySearch(Object a, Object key) public static int binarySearch(T a, T key, Comparator c) 【例4.6】 對象數(shù)組的排序和查找。2022/7/27214.4.3 Random隨機數(shù)序列類 public class Random extends Object implements java.io.Se

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論