• /  35
  • 下載費用: 9.90積分  

Java面向對象程序設計 第二版代碼教案資源聶哲類的繼承.ppt

'Java面向對象程序設計 第二版代碼教案資源聶哲類的繼承.ppt'
Java面向對象程序設計深圳職業技術學院軟件技術專業類的繼承內容提要4使用繼承改善系統類的結構123類成員的繼承規則子類構造器子類對父類方法的重寫汽車管理系統系統是用于管理小轎車、客車等各類汽車資源的系統。功能主要包括:維護、存儲各類車的基本信息;提供汽車信息列表輸出等功能。分析:針對系統要求,應設計哪些核心類?汽車管理系統核心類1.用于描述各種類型車信息的車類,如Car類、Bus類;2.用于保存所有汽車基本信息的數據類。分析:1。Car類與Bus類各有什么成員屬性和方法?比較Car類與Bus類,發現什么異同?如果還需要其它車類,怎么做?VehicleData類用于保存維護所有汽車基本信息;分析VehicleData類問題:1. 如何保存各類車信息?2 .分析相關的add方法和list方法,比較異同。ArrayList類的使用ArrayList類封裝了一個Object類型的數組,我們可以使用它來維護一個Object的可變長數組。ArrayList對象的創建public ArrayList():默認的構造器,將會以默認大?。?6)來初始化內部的數組。public ArrayList(int initialCapacity):用指定的大小來初始化內部的數組。public ArrayList(Collection c):用一個已有集合對象來構造數組,并將該集合的元素添加到ArrayList的數組中。ArrayList類的使用ArrayList類的部分常用方法add(Object o):在對象列表結構的最后添加對象元素。add(int index, Object element):在對象列表指定位置插入新的對象元素。remove(Object o) :從對象列表中移走對象。 clear():清空列表中的所有對象元素。iterator():返回用于遍歷對象集合的指針。 Java的循環控制結構Java的循環語句共有三種,它們是:while 循環語句for 循環語句do…while循環語句。循環結構由四個部分組成。初始化部分(initialization):一條或多條語句,用來做一些初始化的工作。循環條件部分(loop-condition):一個boolean型的表達式,根據它的值來判斷是否繼續下一次循環。循環體部分(body):將被反復執行的代碼,可以是一條語句,也可以是一個語句塊(復合語句)。迭代部分(iteration):在一次循環結束后,下一次循環開始前執行的語句,通常用于修改循環條件。Java的循環控制結構while和for循環語句對應當型結構,do…while語句對應直到型結構。當型循環結構 直到型循環結構While循環while的語法格式如下: [initialization] while (loop-condition){ body;   [iteration;] }試一試: 請分析下面程序段的功能,繪制其流程圖,并加以解釋。int count=1; //定義并初始化循環變量Iint sum=0; //定義并初始化求和結果變量sumwhile(count<=100){ //循環求和sum+=count; //循環體count++;}System.out.println(“1+2+...+100=”+sum);//輸出結果for循環for 循環語句是當型結構,在幾種循環語句的使用中最為靈活,其語法格式如下:for ([initialization];[loop-condition]; [iteration]){    body;  }試一試:編寫使用for循環語句實現計算1到100的和的程序段。do…while循環語句do-while 循環語句是直到型結構,它的語法格式如下:[initialization]  do {    body;   [iteration;]  } while (loop-condition);試一試:編寫使用do-while循環語句實現計算1到100的和的程序段。改善系統類結構如何有效減少Car類和Bus類代碼的重復?觀察下圖基本思路:將Car類與Bus類的共性抽象出來,上移到Vehicle類中。以Vehicle類為基礎,構建Car類和Bus類。相關概念類的繼承描述的是類與類之間的“is a ”關系,即子類是比父類更為特殊的類,是父類的一種特例。繼承機制的優點在于為我們提供了一種類級的代碼重用機制,使我們可以在現有類的基礎上,通過重用、修改或添加等方法創建一個新類。父類(或基類、超類)子類(或派生類)繼承的Java實現編寫例3-3程序在Java中使用關鍵字extends實現繼承,其基本語法格式為:class SubClassName extends SupClassName{ }需要討論二個問題:1、子類中有什么?類成員的繼承規則是怎樣的?2、在繼承結構中,構造器是如何處理的?如何寫子類構造器方法。類成員的繼承規則分析討論private成員的繼承性;分析討論public成員的繼承性;問題:如果父類的public方法是用來操作父類的私有變量呢?分析討論無訪問控制符修飾的成員的繼承性;protected訪問修飾符的使用protected是專為繼承而設計的訪問控制修飾符成員屬性與成員方法的繼承規則父類 publicdefaultprotectedprivate同一包中子類publicdefaultprotected不被繼承Java成員繼承規則試一試:編寫Bus類的測試程序,參見P79-P80分析:Bus類中有哪些成員變量與成員方法?如果調用從父類繼承下來的公有方法?舉例說明?子類構造器重新思考:構造器的形式要求?構造器的作用?觀察分析:Bus類與Car類構造器方法理解子類構造器在內存機制中,父類與子類占用同一塊內存,只不過子類在父類的基礎上增加了自己的部分,即子類依附于父類,先有父類再有子類。因此,構建對象時,也要先構建父類的數據部分,再考慮子類增加的部分。子類構造器子類構造器的一般形式子類類名(構造器參數列表){ super(與父類構造器方法參數相對的實參); //①調用父 類構造器 //②對子類成員的初始化}實戰演練1.編寫一個矩形類Rect,該類包含:兩個私有屬性:矩形的長length和寬width。一個構造器方法:帶2個參數的構造器方法,用于對length和width屬性進行初始化。兩個公有成員方法:分別用于計算并返回矩形的面積和周長。實戰演練2.編寫一個具有確定位置的矩形類PlainRect,該類繼承于Rect類,其確定位置用矩形的左上角坐標來標識,為該類添加:兩個屬性:矩形左上角坐標startX和startY。兩個構造器方法:(1)帶4個參數的構造器方法,用于對startX、startY、width和height屬性初始化;(2)不帶參數的構造器方法,將矩形初始化為左上角坐標、長和寬都為0的矩形;一個方法:方法isInside(double x,double y)。用于判斷某個點是否在矩形內部,如在矩形內,返回true, 否則,返回false。實戰演練3.編寫上題PlainRect類的測試程序(1)創建一個左上角坐標為(10,10),長為20,寬為10的矩形對象;(2)計算并打印輸出矩形的面積和周長;(3)判斷點(25.5,13)是否在矩形內,并打印輸出相關信息。方法覆蓋(重寫)當從父類繼承下來的方法不能完全滿足子類需要時,我們可以重寫該方法。如:Bus中從Vehicle類中繼承下來的方法printInfo()不能輸出車的座位數。修改Bus如下: class Bus extends Vehicle{ private int numOfSeat; public Bus(String type,String brand,double price,int numOfSeat){ super(type,brand,price); this.numOfSeat=numOfSeat; } public void printInfo() { //重寫父類中的printInfo()方法 super.printInfo(); //調用父類中的該方法 System.out.println("座位數:" + numOfSeat); } }方法覆蓋(重寫)重新運行Bus類的測試程序P79-P80方法覆蓋與方法重載的區別。方法重載要求:方法名相同,參數數目或參數類型不同;方法覆蓋要求:子類的方法定義應與父類保持一致。即應與父類有完全相同的方法名、返回值類型和參數列表,否則就不是方法的覆蓋,而是在子類中定義了自己的與父類無關的成員方法,此外,方法的覆蓋還應遵循以下規則:覆蓋方法的訪問控制應該與它所覆蓋的方法的訪問控制相同或更寬松;覆蓋方法不能比它所覆蓋的方法拋出更多的異常。實戰演練1. 編寫Employee類,該類包含:四個受保護屬性:雇員的姓名name、工號number、住址address和薪水salary。一個構造器方法:用于初始化name、number和salary屬性。兩個公有成員方法:分別實現職員基本信息的輸出和按比例漲工資的功能。實戰演練2.編寫Manager類,該類繼承于Employee類(1)為其添加:兩個屬性:辦公室officeID和年終分紅bonus;一個構造器方法:帶有4個參數的構造器方法,用于對除bonus屬性外的所有其它屬性進行初始化;方法:officeID屬性和bonus屬性的相關set和get方法;(2)重寫Employee類中的方法raiseSalary(double proportion),經理漲工資的計算方法為在雇員工資漲幅的基礎上增加10%的比例。實戰演練3.編寫TemporaryEmployee(臨時工)類,該類繼承于Employee類(1)為其添加:一個屬性:雇傭年限hireYears;構造器方法:用于初始化該類的所有屬性;方法:hireYears屬性的set和get方法;(2)重寫Employee類中的方法raiseSalary(double proportion),臨時工的工資漲幅為正式雇員的50%。添加新的子類在車的繼承結構中添加Truck類。為該類添加一個噸位數屬性。重寫printInfo()方法 幾個其它繼承的實例學生人公司雇員中學生大學生經理普通員工輪船客輪貨輪1、討論:圖所表示的關系2、輪船——客輪的關系示例(共性與個性)3、列舉其它的類似關系Java的單繼承結構每個類最多只能有一個父類,只支持單繼承;Object類是Java的終極超類,所有類都是Object類的直接或間接子類。子類繼承沿繼承路徑向上的所有父類的有關屬性和方法。分析與討論襯衣與裙子類具有許多相同的屬性,能否將它們看成一種繼承關系?深入理解繼承概念面向對象中的繼承是一個基于分類學的概念,繼承描述的是一種“is a”的關系。子類是父類在同一個分類分支上的一個更為特殊的類,只有當類之間存在的是一種能夠被描述為:“子類 is a 父類”的時候,我們才使用繼承。因此,在面向對象程序設計中,Skirt與Shirt類不能表示為一種繼承關系。添加抽象服裝襯衣裙子 深圳職業技術學院
關 鍵 詞:
教案 代碼 程序設計 第二 面向對象 資源 java 繼承
 天天文庫所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:Java面向對象程序設計 第二版代碼教案資源聶哲類的繼承.ppt
鏈接地址: http://www.476824.live/p-51617579.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服點擊這里,給天天文庫發消息,QQ:1290478887 - 聯系我們

本站為“文檔C2C交易模式”,即用戶上傳的文檔直接賣給(下載)用戶,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有【成交的100%(原創)】。本站是網絡服務平臺方,若您的權利被侵害,侵權客服QQ:1290478887 歡迎舉報。

[email protected] 2017-2027 http://www.476824.live 網站版權所有

粵ICP備19057495號 

收起
展開
球探网即时蓝球比分 涨停的股票按涨停价购买能买到吗 北京赛车5码规律图解 北京股票配资网 11选5任五万能10注 河北福彩快三 体彩快乐扑克中奖规则 湖北快3走势图一基本走势 体彩浙江6+1中奖规则 有投资价值的股票 广东福彩36选7历史开奖结果