JAVA_抽象类和接口
JAVA_抽象類和接口
1.編寫程序,其中包含一個抽象類Person,兩個類:Chinese和American。
(1)抽象類Person中包含一個名為name的變量用于存儲姓名,使用構(gòu)造方法對name進行賦值。
(2)抽象類Person包含一個名為sayHello的公共抽象方法聲明,在控制臺顯示問好信息。
(3)Chinese和American這兩個類繼承了Person抽象類。
(4)Chinese和American這兩個類在sayHello()方法中分別顯示“您好,我叫。”和“Hello,my name is ”。
(5)在測試程序PersonTest的main()方法中使用Person定義一個長度為2的一維數(shù)組persons,依次存入Chinese(“丁丁”)、American(“Alice”)這兩個對象,遍歷數(shù)組persons,調(diào)用sayHello方法顯示問好信息。
要求:所有類都存放在一個名為lab0701的包中。
2.現(xiàn)有以下接口的聲明:
(1)定義圓類Circle并實現(xiàn)接口CalcArea,圓類的主要成員變量為半徑radius,構(gòu)造方法的參數(shù)用于初始化半徑。
(2)定義矩形類Rectangle并實現(xiàn)接口CalcArea,矩形類的主要成員變量包括長length和寬width,構(gòu)造方法的參數(shù)用于初始化長和寬。
(3)現(xiàn)有如下類Tester,其功能是求存儲在一個數(shù)組中的多個圖形的面積之和,要求補全其中缺少的代碼。
要求:所有類和接口都存放在一個名為lab0702的包中。
3.學(xué)校中有教師和學(xué)生兩類人,而在職研究生既是教師又是學(xué)生。
(1)設(shè)計兩個接口IStudent和ITeacher。其中,IStudent接口包含setFee()和getFee()方法,分別用于設(shè)置和獲取學(xué)生的學(xué)費;ITeacher接口包含setPay()和getPay()方法,分別用于設(shè)置和獲取教師的工資。
(2)定義一個研究生類Graduate,實現(xiàn)IStudent接口和ITeacher接口。它的私有成員變量有name(姓名,只讀),fee(每年的學(xué)費),pay(每月的工資)。構(gòu)造方法用于初始化各個成員變量。定義成員變量的getter和setter方法。
(3)在測試程序GraduateTest中使用Graduate類創(chuàng)建一研究生對象(姓名:李想;學(xué)費:2000;工資:9000),統(tǒng)計他的年收入,如果年收入減去一年的學(xué)費不足2000元,則輸出“需要貸款”信息,否則輸出“無需貸款”信息。
要求:所有類都存放在一個名為lab0703的包中。
代碼:0701
package lab0701;public class American extends Person{American(String name) {super(name);// TODO Auto-generated constructor stub}void sayHello() {System.out.println("Hello,My name is"+name);}}package lab0701;class Chinese extends Person{Chinese(String name) {super(name);// TODO Auto-generated constructor stub}void sayHello() {System.out.println("您好,我叫"+name);} }package lab0701;abstract class Person {String name ;Person(String name ){this.name=name;}void sayHello() { // System.out.println("你好");}}package lab0701;public class PersonTest {public static void main(String[] args) {// TODO Auto-generated method stubPerson[] persons=new Person[] {new Chinese("叮叮"), new American(" Alice")};for(Person p:persons) {p.sayHello();}}}代碼:0702
package lab0702;public interface CalcArea {double getArea(); }package lab0702;public class Circle implements CalcArea{double radius;Circle(double radius){this.radius=radius;}@Overridepublic double getArea() {// TODO Auto-generated method stubreturn Math.PI*radius*radius;}} package lab0702;public class Rectangle implements CalcArea{double length;double width;Rectangle(double length,double width){this.length=length;this.width=width;}@Overridepublic double getArea() {// TODO Auto-generated method stubreturn length*width;}} package lab0702;public class Tester {static CalcArea[] shapes = { new Circle(1.0), new Rectangle(3.0, 4.0), new Circle(8.0) };public static void main(String[] args) {System.out.println("total area = " + sumArea(shapes));}public static double sumArea( CalcArea[] shapes) {double sum = 0;for(CalcArea c:shapes) {sum=sum+c.getArea();}return sum; } }代碼:0703
package lab0703;public class Graduate implements IStudent,ITeacher{private String name;private double fee;private double pay;public Graduate(String name,double fee,double pay) {this.setName(name);this.fee=fee;this.pay=pay;}public double getFee() {return fee;}public void setFee(double fee) {this.fee = fee;}public double getPay() {return pay;}public void setPay(double pay) {this.pay = pay;}public String getName() {return name;}public void setName(String name) {this.name = name;} }package lab0703;//(3)在測試程序GraduateTest中使用Graduate
//類創(chuàng)建一研究生對象(姓名:李想;學(xué)費:2000;工資:9000),
//統(tǒng)計他的年收入,如果年收入減去一年的學(xué)費不足2000元,
//則輸出“需要貸款”信息,否則輸出“無需貸款”信息。
// 3.中有教師和學(xué)生兩類人,而在職研究生既是教師又是學(xué)生。
// (1)設(shè)計兩個接口IStudent和ITeacher。其中,IStudent接
// 口包含setFee()和getFee()方法,分別用于設(shè)置和獲取學(xué)生的學(xué)費;
// ITeacher接口包含setPay()和getPay()方法,分別用于設(shè)置和獲取教師的工資。
總結(jié)
以上是生活随笔為你收集整理的JAVA_抽象类和接口的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [linux虚拟机] 使用yum命令时,
- 下一篇: 计算机中字符的表示方法