一、实验目的
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(); } } }