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