一、實驗目的
1. 掌握Java中抽象類別和抽象方法的定義;
2. 掌握Java中介面的定義,熟練掌握介面的定義形式以及介面的實現方法。
二、實驗內容
1、按照要求使用Java進行編碼。
1) 編寫一個抽象類別Shape,其中有抽象方法getArea()和getPerimeter()
2) 在Shape類的基礎上派生出Rectangle和Circle類,二者都實現了計算面積的方法getArea()和計算周長的方法getPerimeter();
3) 構造main函數,產生Rectangle和Circle對象,並用Shape類型的變數調用Rectangle和Circle對象的getArea()和getPerim()方法。
2、以電話為父類,行動電話和固定電話為兩個子類,並使行動電話實現介面:可移動。固定電話又有子類:無繩電話。定義介面及各類,明確他們的繼承關係。
3、在實驗2中所實現的Teacher類的基礎上,修改Teacher類的代碼,要求:由多個Teacher對象所形成的數組可以使用Arrays.sort方法進行排序(編號由低到高排序)。
三、實驗要求
完成程式設計並提交實驗報告。
<1>
package shape;abstract class Shape {public abstract void getArea();public abstract void getPerimeter();}
package shape;public class Circle extends Shape{private int r;public Circle(int r){this.r = r;}public void getArea(){System.out.println("圓面積為:"+Math.PI*r*r);}public void getPerimeter(){System.out.println("圓周長為:"+2*Math.PI*r);}public static void main(String[] args){Shape c = new Circle(4);c.getArea();c.getPerimeter();}}package shape;public class Rectangle extends Shape{private int a,b;public Rectangle(int a,int b){this.a = a;this.b = b;}public void getArea(){System.out.println("矩形面積為:"+a*b);}public void getPerimeter(){System.out.println("矩形周長為:"+2*(a+b));}public static void main(String[] args){Shape r = new Rectangle(3,4);r.getArea();r.getPerimeter();}}
package Teacher;import java.util.Arrays;public class teachers implements Comparable{ private String no; private int age; private String name; private String seminary; teachers(String no,String name,int age,String seminary) { this.no=no; this.name=name; this.age=age; this.seminary=seminary; } public void getName() { System.out.println("姓名:"+name); } public void getNo() { System.out.println("編號:"+no); } public void getAge() { System.out.println("年齡:"+age); } public void getSeminary() { System.out.println("學院:"+seminary); } public void setSeminary(String seminary) { this.seminary=seminary; } public void setNo(String no) { this.no=no; } public void setName(String name) { this.name=name; } public void setAge(int age) { this.age=age; } public boolean equals(String no) { if(this.no==no) { return true; } else { return false; } } public String toString() { return "姓名:"+name+" "+"編號:"+no+" "+"年齡:"+age+" "+"學院:"+seminary; } public int compareTo(Object o){teachers t = (teachers)o;if(this.no.compareTo(t.no)>0)return 1;if(this.no.compareTo(t.no)<0) return -1;return 0;} public static void main(String args[]) { teachers[] t = new teachers[5]; t[0] = new teachers("0901051717","王濤",26,"資訊學院"); t[1] = new teachers("0901051714","司吉峰",21,"資訊學院"); t[2] = new teachers("0901051719","王磊",22,"資訊學院"); t[3] = new teachers("0901051713","若曦",19,"資訊學院"); t[4] = new teachers("0901051715","成龍",24,"資訊學院"); Arrays.sort(t); for(int i=0;i<5;i++) { t[i].getName(); } }}