日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

javaSE各阶段练习题--面向对象-多态-抽象类-接口

發(fā)布時(shí)間:2024/2/28 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javaSE各阶段练习题--面向对象-多态-抽象类-接口 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1 (多態(tài))定義榨汁機(jī)JuiceMachine 有榨汁方法makeJuice,傳入相應(yīng)的水果。如果傳入的是Apple 輸出 "流出蘋(píng)果汁"傳入的是Orange 輸出 "流出橙汁"傳入的是Banana 輸出 "流出香蕉醬" public class Test01 {public static void main(String[] args) {JuiceMachine jMachine = new JuiceMachine();Apple apple = new Apple();jMachine.makeJuice(apple);//流出蘋(píng)果汁Orange orange = new Orange();jMachine.makeJuice(orange);Banana banana = new Banana();jMachine.makeJuice(banana);}}class JuiceMachine{public void makeJuice(Fruit f) {f.make();} }class Fruit{public void make() {System.out.println("制作水果汁");} }class Apple extends Fruit{public void make() {System.out.println("流出蘋(píng)果汁");} }class Orange extends Fruit{public void make() {System.out.println("流出橙汁");} }class Banana extends Fruit{public void make() {System.out.println("流出香蕉醬");} }2 (多態(tài))已知形狀類(lèi) 擁有一個(gè)計(jì)算面積的方法子類(lèi) 矩形、圓形、三角形 覆蓋形狀類(lèi)的計(jì)算面積的方法 分別計(jì)算矩形、圓形、三角形的面積 已知一個(gè)Object類(lèi)型數(shù)組 裝有 五個(gè)(各個(gè)圖形的個(gè)數(shù)不定) 矩形、圓形、三角形的對(duì)象計(jì)算這五個(gè)對(duì)象的面積總和設(shè)計(jì)形狀類(lèi) 和它的三個(gè)子類(lèi),完成上面的工作, 提示: 三角形面積等于 半周長(zhǎng)*(半周長(zhǎng)-邊1)*(半周長(zhǎng)-邊2)*(半周長(zhǎng)-邊2) 的積 開(kāi)根號(hào)(海倫定理)如何開(kāi)根號(hào),請(qǐng)自行查閱Math類(lèi)public class Test02 {public static void main(String[] args) {Form rectangle = new Rectangle(5,4);Form rectangle2 = new Rectangle(8, 9);Form circle = new Circle(4);Form circle2 = new Circle(5);Form triangle = new Triangle(3, 4, 5);Object[] os = new Object[5];os[0] = rectangle;os[1] = rectangle2;os[2] = circle;os[3] = circle2;os[4] = triangle;double sum = 0;for (int i = 0; i < os.length; i++) {sum += ((Form) os[i]).cacluateArea();}System.out.println("面積總和為="+sum);} }//形狀類(lèi) class Form{public double cacluateArea() {return 0;} }//矩形類(lèi) class Rectangle extends Form{public Rectangle(int length, int width) {super();this.length = length;this.width = width;}private int length;//長(zhǎng)private int width;//寬public double cacluateArea() {return length*width;} } //圓 class Circle extends Form{public Circle(int r) {super();this.r = r;}private double r;//半徑public double cacluateArea() {return (3.14*r*r);} } //三角 class Triangle extends Form{private int L1;//三邊長(zhǎng)度private int L2;private int L3;public Triangle(int l1, int l2, int l3) {super();L1 = l1;L2 = l2;L3 = l3;}//三角形面積等于 半周長(zhǎng)*(半周長(zhǎng)-邊1)*(半周長(zhǎng)-邊2)*(半周長(zhǎng)-邊2) 的積 開(kāi)根號(hào)public double cacluateArea() {int s = (L1+L2+L3)/2;int res = s*(s-L1)*(s-L2)*(s-L2);return ((int)(Math.sqrt(res)*100))/100.0;} }3 (抽象類(lèi)) 雇員類(lèi)(Employee-抽象類(lèi)):包含抽象方法work() 和抽象方法 show()work()方法表示 工作內(nèi)容show()方法表示 員工屬性的介紹程序員類(lèi):屬性(姓名、工號(hào)、工資、獎(jiǎng)金),行為(工作:軟件開(kāi)發(fā))測(cè)試工程師:屬性(姓名、工號(hào)、工資),行為(工作:軟件測(cè)試)項(xiàng)目經(jīng)理類(lèi):屬性(姓名、工號(hào)、工資、獎(jiǎng)金),行為(工作:控制進(jìn)度)要求:子類(lèi)在實(shí)現(xiàn)時(shí),用System.out.println()在控制臺(tái)輸出例如: 程序員 work() 輸出:"軟件開(kāi)發(fā)"show() 輸出:姓名為xxx 工號(hào)為xxx ......public class Test03 {public static void main(String[] args) {Employee e1 = new Programmer("技術(shù)總監(jiān)", 30003, 16000, 4000);e1.work();e1.show();Employee e2 = new TestEngineer("首席測(cè)試師", 20001, 13000);e2.work();e2.show();Employee e3 = new Programmer("李孟冬", 10001, 20000, 8000);e3.work();e3.show(); } }abstract class Employee{//雇員類(lèi)private String name;//姓名private int id;//工號(hào)private int salary;//工資public Employee(String name, int id, int salary) {super();this.name = name;this.id = id;this.salary = salary;}public String getName() {return name;}public int getId() {return id;}public int getSalary() {return salary;}public abstract void work();//工作內(nèi)容public abstract void show();//員工屬性的介紹 } //程序猿類(lèi) class Programmer extends Employee{private int prize;//獎(jiǎng)金public Programmer(String name, int id, int salary, int prize) {super(name, id, salary);this.prize = prize;}@Overridepublic void work() {System.out.println("我的工作是軟件開(kāi)發(fā)。");}@Overridepublic void show() {System.out.println("姓名:"+super.getName()+",工號(hào):"+super.getId()+",工資:"+super.getSalary()+",獎(jiǎng)金:"+this.prize);} } //測(cè)試工程師 class TestEngineer extends Employee{public TestEngineer(String name, int id, int salary) {super(name, id, salary);}@Overridepublic void work() {System.out.println("我的工作是軟件測(cè)試。");}@Overridepublic void show() {System.out.println("姓名:"+super.getName()+",工號(hào):"+super.getId()+",工資:"+super.getSalary());} } //項(xiàng)目經(jīng)理 class ProjectManager extends Employee{private int prize;//獎(jiǎng)金public ProjectManager(String name, int id, int salary, int prize) {super(name, id, salary);this.prize = prize;}@Overridepublic void work() {System.out.println("我的工作是控制進(jìn)度。");}@Overridepublic void show() {System.out.println("姓名:"+super.getName()+",工號(hào):"+super.getId()+",工資:"+super.getSalary()+",獎(jiǎng)金:"+this.prize);} }4(接口)定義一個(gè)接口Area,其中包含一個(gè)計(jì)算面積的抽象方法calculateArea(), 然后設(shè)計(jì)MyCircle和MyRectangle兩個(gè)類(lèi)都實(shí)現(xiàn)這個(gè)接口中的方法calculateArea(), 分別計(jì)算圓和矩形的面積。 public class Test04 {public static void main(String[] args) {MyCircle circle = new MyCircle(2);circle.calculateArea();MyRactangle ractangle = new MyRactangle(5, 8);ractangle.calculateArea();} }interface Area{void calculateArea(); }class MyCircle implements Area{private double r;public MyCircle(double r) {this.r = r;}@Overridepublic void calculateArea() {System.out.println(3.14*r*r);} } class MyRactangle implements Area{private int length;private int width;public MyRactangle(int length, int width) {this.length = length;this.width = width;}@Overridepublic void calculateArea() {System.out.println(length*width);} }5 .編寫(xiě)一個(gè)Shape接口, 具有一個(gè)draw 方法, 并編寫(xiě)三個(gè)類(lèi)Triangle,Rectangle,Diamond都實(shí)現(xiàn)Shape 接口。 在3個(gè)類(lèi)中分別實(shí)現(xiàn)draw方法打印如下星陣:* **** **** **** *** ***** **** * 編寫(xiě)一個(gè)測(cè)試類(lèi)具有一個(gè)測(cè)試方法, 使用Shape 參數(shù), 方法體中調(diào)用Shape的draw 方法,打印出相應(yīng)圖形 public class Test05 {public static void main(String[] args) {Tria t = new Tria();t.draw();System.out.println("-------------");Rect r = new Rect();r.draw();System.out.println("-------------");Diamond d = new Diamond();d.draw();} }interface Shape{void draw(); }class Tria implements Shape{@Overridepublic void draw() {for (int i = 1; i <= 3; i++) {for (int j = i; j <= 2; j++) {System.out.print(" ");}for (int j = 1; j <= 2*i-1; j++) {System.out.print("*");}System.out.println();}} } class Rect implements Shape{@Overridepublic void draw() {for(int i = 0; i < 3; i++) {for(int j = 0; j < 4; j++) {System.out.print("*");}System.out.println();}} } class Diamond implements Shape{@Overridepublic void draw() {System.out.println(" * ");System.out.println("***");System.out.println(" * ");} }

?

總結(jié)

以上是生活随笔為你收集整理的javaSE各阶段练习题--面向对象-多态-抽象类-接口的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。