Java程序設(shè)計(jì)案例教程 習(xí)題答案 第4章 面向?qū)ο?下_第1頁
Java程序設(shè)計(jì)案例教程 習(xí)題答案 第4章 面向?qū)ο?下_第2頁
Java程序設(shè)計(jì)案例教程 習(xí)題答案 第4章 面向?qū)ο?下_第3頁
Java程序設(shè)計(jì)案例教程 習(xí)題答案 第4章 面向?qū)ο?下_第4頁
Java程序設(shè)計(jì)案例教程 習(xí)題答案 第4章 面向?qū)ο?下_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第4章面向?qū)ο螅ㄏ拢┮?、填空題. 1.重寫. final. instanceof. Implements.編譯時異常. RuntimeException.逗號二、判斷題.對.對.錯.對.錯.對.對.錯.對.錯三、選擇題BDDDBDCBBDC四、簡答題.抽象類和接口有如下區(qū)別:1)抽象類可以有構(gòu)造方法,接口中不能有構(gòu)造方法。2)抽象類中可以有普通成員變量,接口中沒有普通成員變量。3)抽象類中可以包含非抽象的普通方法,接口中的所有方法必須都是抽象的,不能有 非抽象的普通方法。4)抽象類中的抽象方法的訪問類型可以是public, protected和(默認(rèn)類型),但接口中 的抽象方法只能是publi

2、c類型的,并且默認(rèn)即為public abstract類型。5)抽象類中可以包含靜態(tài)方法,接口中不能包含靜態(tài)方法。6)抽象類和接口中都可以包含靜態(tài)成員變量,抽象類中的靜態(tài)成員變量的訪問類型可 以任意,但接口中定義的變量只能是public static final類型,并且默認(rèn)為public static final類 型。7) 一個類可以實(shí)現(xiàn)多個接口,但只能繼承一個抽象類。2.在類的繼承中需要注意的問題:.在Java中,類只支持單繼承,不允許多重繼承,也就是說一個類只能有一個直 接父類;.多個類可以繼承一個父類;.在Java中,多層繼承是可以的,即一個類的父類可以再去繼承另外的父類;.在Java

3、中,子類和父類是一種相對概念,也就是說一個類是某個類父類的同 時,也可以是另一個類的子類。五、編程題abstract public class Animal public String name; public int age;public double weight;public void showinfo()System. out .printin (動物名為”+name+” ,年齡為+ag+” 歲,重量為”+w ight); abstract public void move();abstract public void eat ();)public class Bird extends

4、 Animal public Bird(String name,int age,double weight) this name=name;this . age=age;this.weight=weight;)public void showinfo()System. out .printin (“鳥名為”+nam+ ” ,年齡為+age+多,重量為”+wight); ) Override public void move() System. out .printin (name+”用翅膀在天空上飛”); Override public void eat () System. out .pri

5、ntin (name+”喜歡吃蟲子”); public class TestAnimal public static void main(String args) Animal bird=new Bird(“麻雀”,1,0.3);bird.showinfo();bird.move();bird.eat();)Employee.javaabstract class Employeeprivate String name;/定義姓名name并私有化屬性private int month;/定義生日月份month并私有化屬性public Employee () 無參構(gòu)造器public Employe

6、e (String name, int month) /有參構(gòu)造方法this . name = name;/給屬性nam初始化賦值this .month = month; /給屬性 month 初始化賦值 TOC o 1-5 h z )/獲取屬性name的方法publicString getName()return name; /返回 name 屬性)/獲取屬性month的方法publicint getMonth()return month; /返回 month 屬性)/給屬性name賦初始值public void setName(Stringname)this . name = name;

7、/本類中的屬性 name給屬性month賦初始值public void setMonth(intmonth)this .month = month; /本類中的屬性 month)/創(chuàng)立getSalary ()方法計(jì)算工資,參數(shù)month是月份,如果當(dāng)月是員工生日,獎勵100元public double getSalary(int month)double salary = 0;/定義工資變量/判斷當(dāng)前月份是否是員工的生日月份,如果是獎勵100元2 9if(this.month = month) salary = salary + 100;return salary; /返回工資 salary

8、TOC o 1-5 h z )SalariedEmployee.javaclass SalariedEmployee extends Employeeprivate double monthsalary;/封裝 monthsalary 屬性public SalariedEmployee () /無參構(gòu)造方法/有參構(gòu)造方法 參數(shù) 姓名 生日月份 月薪public SalariedEmployee(String name,int month,double monthsalary)super (name,month) ;/調(diào)用父類有參構(gòu)造方法this .monthsalary = monthsala

9、ry; /為屬性 monthsalary 初始化賦值 TOC o 1-5 h z )/獲取 monthSalary 的值public double getMonthSalary()return monthSalary;)/給 monthSalary 賦值public void setMonthSalary(doublemonthSalary)this.monthSalary = monthSalary;)/覆蓋父類中的方法public double getSalary(intmonth)/定義工資變量double salary = monthSalary+super.getSalary(mon

10、th);return salary;)HourlyEmployee.javaclass HourlyEmployee extends Employeeprivate double hourlySalary;/定義屬性 hourlySalary 每小時的工資private int hours;/定義屬性hours每月工作的小時數(shù)public HourlyEmployee () /無參構(gòu)造方法/有參構(gòu)造方法 參數(shù) 姓名 生日月份 每小時的工資 每月工作的小時數(shù)public HourlyEmployee(String name,int month,doublehourlySalary,inthour

11、s)super (name,month) ;/調(diào)用父類有參構(gòu)造方法this . hourlySalary = hourlySalary ; /為屬性 hourlySalary 初始化賦值this . hours = hours;/為屬性 hours 初始化賦值)public double getHourlySalary () /獲取 hourlySalary 的值return hourlySalary;)7172737475767771727374757677787980818283848586878889909192939495969798 rate)99100101102103104105

12、106107108109110111定義set方法設(shè)置hourlySalary hours的值public void setHourlySalary(double hourlySalary) this.hourlySalary =hourlySalary;)public void setHourly(int hours) this.hours = hours;/覆蓋父類方法public double getSalary(int month)if (hours 0) /如果工作小時數(shù)小于0輸出數(shù)據(jù)錯誤System. out .printIn (數(shù)據(jù)錯誤”); return 0;)/小于160個小

13、時的按照每個月的工作小時數(shù)乘以每小時的工資 else if(hours = 160)return hourlySalary*hours+super.getSalary(month); /超出160個小時的小時數(shù)按照15倍計(jì)算 else return hourlySalary*160+hourlySalary*l.5*(hours- 160)+super.getSalary(month);) ) SalesEmployee.java class SalesEmployee extends Employee private double sales ;/定義銷售額 salesprivate dou

14、ble rate;/定義提成率 ratepublic SalesEmployee() public SalesEmployee(String name,int month,double sales,doublesuper(name,month); this.sales = sales; this.rate = rate;)public double getSales () return sales;)public double getRate() return rate;public void setSales(double sales) this.sales = sales;)112publ

15、icvoid setRate(double rate)113this.rate = rate; TOC o 1-5 h z 114)115publicdouble getSalary(int month)116returnthis , getSales()*(1+this.getRate()+super.getSalary(month);117)118BasePlusSalesEmployee.java119 class BasePlusSalesEmployee extends SalesEmployee120 private double baseSalary; /定義基石出工資 basS

16、alary121/無參構(gòu)造方法122public BasePlusSalesEmployee()123/有參構(gòu)造方法124public BasePlusSalesEmployee(String name,int month,doublesales,double rate,double baseSalary)125super(name,month,sales, rate);126this.baseSalary = baseSalary; TOC o 1-5 h z 127)128/get/set方法對私有屬性的調(diào)用和設(shè)置129public double gatBaseSalary()130ret

17、urn baseSalary;131132publicvoidsetBaseSalary()133this.baseSalary = baseSalary;134)135publicdoublegetSalary(int month)136return baseSalary+super.getSalary(month);137138)Test.java139/定義一個測試類140 public class Test141public static void main(String args)142/聲明一個Employee類型的數(shù)組,并創(chuàng)立不同子類型的對象143Employee employee = new Salarie

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論