freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java第4章面向?qū)ο蟮某绦蛟O(shè)計(jì)-資料下載頁

2025-06-13 07:13本頁面
  

【正文】 聲明為公有方法 . public void setPower( int onOrOff ) { if (onOrOff == ) { (采取某些步驟使得當(dāng)前對象 所代表的電視開啟電源 ...)。 power = 。 } else if (onOrOff == ) { (采取某些步驟使得當(dāng)前對象 所代表的電視關(guān)閉電源 ...)。 power = 。 } //其他參數(shù)被忽略! } public boolean isPowerOn() { return (power == )。 } } 接口的實(shí)現(xiàn) 【 例程 416】 說明: 類 Television 給出了 Controllable 所定義的 setPower( ) 和 isPowerOn( ) 方法的實(shí)現(xiàn)體。此時(shí)類給出的方法應(yīng)該與接口中所定義的方法同名、同形參列表和同返回類型,而且不能降低方法的訪問權(quán)限。 [ 例程 417] public class ControllableDemo { public static void main( String[ ] args ) { Television obj = new Television( 創(chuàng)維 ) 。 //類 Television實(shí)現(xiàn)接口 Controllable,使得類型 // Television 是 Controllable 的子類型,因此, // 引用變量 obj 可以隱式類型轉(zhuǎn)換為 Controllable類型 Controllable ref = obj 。 // 聲明一個(gè)接口變量,可以指向?qū)崿F(xiàn)該接口的類對象 //注意:不能用 new 操作符來聲明一個(gè)接口實(shí)例 ( ) 。 // 不能使用 ref直接直接訪問 getTradeMark()方法, // 因?yàn)樵摲椒ú皇墙涌?Controllable的成員,但可以將//變量 ref 強(qiáng)制轉(zhuǎn)換為 Television 類型,然后再調(diào)用//getTradeMark() 方法。這種強(qiáng)制轉(zhuǎn)換是可行的, // 因?yàn)?ref 引用的對象實(shí)例本來就是類 Television的實(shí)例 if ( () ) ( ( (Television) ref ).getTradeMark() +牌電視的電源已經(jīng)開啟! )。 else ( ( (Television ) ref ).getTradeMark() +牌電視的電源已經(jīng)關(guān)閉! )。 } } 接口的實(shí)現(xiàn) 3. 用法說明: 一個(gè)類可以實(shí)現(xiàn)多個(gè)接口,當(dāng)這多個(gè)接口中定義了同名的成員方法時(shí),要按幾種不同的情況處理: A. 如果這些方法中有相同的形式參數(shù)和返回值,則被看作同一個(gè)方法,這個(gè)類只要重定義一次就可以了。 B. 如果這些方法中有不同的形式參數(shù)就需要重載,而實(shí)現(xiàn)類中也要給出各個(gè)版本的重載方法。 程序舉例: 【 例 1】【 例 2】 接口的實(shí)現(xiàn) 【 例 1】 如果有如下兩個(gè)接口 : public interface InterfaceOne { int methodone( int x)。 int methodtwo( int x)。 } 說明: 如果有一個(gè)類要同時(shí)實(shí)現(xiàn)這兩個(gè)接口,只需提供一個(gè) methodone()方法的實(shí)現(xiàn),但需要提供兩個(gè)methodtwo()方法的實(shí)現(xiàn)(重載 methodtwo()方法)。 public interface InterfaceTwo { int methodone( int x)。 int methodtwo(String x)。 } 【 例 2】 如果有如下兩個(gè)接口: public interface InterfaceOne { int methodone( int x)。 } public interface InterfaceTwo { String methodone( int x)。 } 說明: 這兩個(gè)方法是返回值不同而形參表相同,無法重載,所以不可能被同個(gè)類同時(shí)實(shí)現(xiàn)。 接口的實(shí)現(xiàn) 接口的繼承 1. 規(guī)則: 在 Java語言中,接口也允許繼承, 而且允許一個(gè)接口繼承多個(gè)接口。 2. 接口的繼承語法格式: public interface InterfaceOne extends InterfaceTwo, InterfaceThree … { … 。 } 3. 說明: ( 4點(diǎn)) ⑴ 上述程序定義了一個(gè)接口 InterfaceOne ,繼承自接口 InterfaceTwo, InterfaceThree… (父接口 ),現(xiàn)在接口 InterfaceOne擁有了父接口的所有屬性和方法。 注意: 由于接口的繼承也是設(shè)計(jì)級的繼承,所以接口的多繼承不會帶來復(fù)雜的重復(fù)繼承和名字沖突問題。 接口的繼承 3. 說明 ( 4點(diǎn)) ⑵ 由于接口的繼承層次與類的繼承層次不會混淆,因此允許父類和子類同時(shí)實(shí)現(xiàn)同一個(gè)接口并給出不同的實(shí)現(xiàn)(不過在子類中實(shí)現(xiàn)這個(gè)接口是多余的)。 ⑶ 接口具有多重繼承的特性,即一個(gè)接口可以有多個(gè)父接口。在多重繼承的條件下,如果子接口被一個(gè)類實(shí)現(xiàn),那么這個(gè)類必須實(shí)現(xiàn)子接口和所有父接口中定義的方法。 程序舉例: 有一個(gè)父接口 shape2D(實(shí)現(xiàn)圖形面積的計(jì)算),其子接口為 shape3D (實(shí)現(xiàn)圖形體積的計(jì)算)。類 Circle(圓形)實(shí)現(xiàn)了子接口 shape3D(重定義子接口和父接口中的抽象方法,給出具體的方法體)。 【 參考程序代碼 】 ⑷ Java類庫為所有的接口提供了與之相對應(yīng)的 抽象類 ,稱之為 適配器 。所以如果一個(gè)類繼承了與接口對應(yīng)的抽象類(前提:該類不能再繼承其他類),就不需要實(shí)現(xiàn)所有抽象方法。 用于圖形用戶界面設(shè)計(jì)中的事件處理,如鼠標(biāo)事件、窗口事件等。 ① 解釋說明: ② 程序舉例: 接口的繼承 接口的繼承 解釋說明:例如, 它本身是一個(gè)抽象類,它自己又實(shí)現(xiàn)了接口 中定義的方法,即接口 中定義的方法它都進(jìn)行過抽象的實(shí)現(xiàn),因此,它所對應(yīng)的接口就是 。 在程序中如果只需要使用很少的幾個(gè)方法,就可以繼承 ,而不用去實(shí)現(xiàn)接口。 接口的繼承 public interface PlayClip { void play( ) 。 void loop( ) 。 void stop( ) 。 } public abstract class MyClass implements playClip { void play( ) { //具體實(shí)現(xiàn) } void stop( ) { //具體實(shí)現(xiàn) } void loop( ) 。 } 接口的繼承 3. 接口的繼承用法程序舉例: interface shape2D //定義父接口 { double PI=。 public abstract double area()。 } interface shape3D extends shape2D //定義子接口 { public abstract double volume()。 } class Circle implements shape3D //定義 Circle類實(shí)現(xiàn)子接口 { double radius。 public Circle(double r) { radius=r。 } public double area() //實(shí)現(xiàn)父接口 shape2D中的方法 { return PI*radius*radius。 } public double volume() //實(shí)現(xiàn)子接口 shape3D中的方法 { return 4*PI*radius*radius*radius/3。 } } 接口的繼承 3. 接口的繼承用法程序舉例: public class ShapeDemo //定義測試類 { public static void main(String[] args) { Circle c= new Circle(4)。 (Circle area()=+())。 (Circle volume()=+())。 } } 包 ? Java程序的組織 ? 定義 包 ? 引用 包 ? 包級訪問控制 Java程序的組織 Java語言引入程序包可以更加層次化地組織一個(gè)大型的 Java程序。 1. 程序包的概念: 2. 程序包的作用: Java程序的組織 1. 概念: 程序包:是多個(gè)類或接口的集合。 說明: ( 4點(diǎn)) ① 這些類和接口可分別在不同的 .java 文件定義,每個(gè)文件稱為一個(gè)編譯單元。 ② 一個(gè) Java程序可以定義多個(gè)程序包,每個(gè)程序包又可以有多個(gè)編譯單元或子程序包,每個(gè)編譯單元又可定義多個(gè)類或接口,這是大型 Java程序的典型組織結(jié)構(gòu)。 [結(jié)論 ] 程序包、子程序包、編譯單元、類或接口 構(gòu)成了 Java程序的邏輯組織結(jié)構(gòu)。 Java程序的組織 ③ 當(dāng)沒有定義程序包的編譯單元都處于默認(rèn)的、沒有命名的程序包。 ④ 多數(shù)操作系統(tǒng)下的 Java運(yùn)行平臺都利用文件系統(tǒng)組織程序包和編譯單元。 [結(jié)論 ] 目錄、子目錄、文件 構(gòu)成 Java程序的物理組織結(jié)構(gòu)。 Java程序的組織 2. 作用: ① 程序包使得 Java程序能夠更加層次化的進(jìn)行組織,減少名字沖突問題。 ②程序包使得不同的類或接口可以處于不同的層次,這時(shí)類和接口的名字有簡單名和全名之分。 全名 : 給出該類或接口所在的程序包的名稱。 簡單名 : 就是類或接口本身的名字。 例如:根類 Object 的全名是: 。 定義包 1. 語法格式: 在 Java程序的一個(gè)編譯單元(即一個(gè) Java程序源文件)中定義包的語法格式: package 程序包名 。 2. 格式 說明 : 3. 程序舉例: 注意: 包名在 Java編碼規(guī)范中約定全部采用小寫字母表示。 定義包 2. 格式說明:( 4點(diǎn)) ① 表示該編譯單元屬于由程序包名所指定的程序包。 ② package是 Java語言的保留字,程序包名是 Java語言的一個(gè)合法的標(biāo)識符,或者是由句點(diǎn)(“ .” )分隔的幾個(gè)標(biāo)識符。 ③ 該聲明同時(shí)定義了由程序包名所指定的程序包,當(dāng)程序包名是一個(gè)單一的標(biāo)識符時(shí)就定義了一個(gè)程序包,當(dāng)它是由句點(diǎn)分隔的幾個(gè)標(biāo)識符時(shí)就定義了具有子程序包關(guān)系的多個(gè)程序包,每個(gè)句點(diǎn)后面的程序包是句點(diǎn)前面程序包的子程序包。 ④ 該聲明語句必須放在源文件除注釋和空白之外的第一條語句,否則會出現(xiàn)編譯錯誤。 定義包 例程: package packageone 。 public class ClassOne { public static void main( String[ ] args ) { (類 ClassOne 屬于程序包 packageone。 )。 } } 程序運(yùn)行: /* ― d 目錄 ”參數(shù)功能是自動建立程序包對應(yīng)的子目錄,并將生成的字節(jié)碼文件放在該目錄下。*/ D:\javac d . /* 訪問一個(gè)類來運(yùn)行程序時(shí),必須使用類的全名,否則出錯。 */ D:\java 引用包 引入: 程序包使得 Java程序的組織結(jié)構(gòu)層次化,也使得類名層次化。當(dāng)
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1