Java实验3 抽象类和接口(2学时)

一、实验目的

1.掌握Java中抽象类和抽象方法的定义;

2.掌握Java中接口的定义,熟练掌握接口的定义形式以及接口的实现方法。

二、实验内容

1、按照要求使用Java进行编码。

1)编写一个抽象类Shape,其中有抽象方法getArea()和getPerimeter()

2)在Shape类的基础上派生出RectangleCircle类,二者都实现了计算面积的方法getArea()和计算周长的方法getPerimeter();

3)构造main函数,生成RectangleCircle对象,并用Shape类型的变量调用RectangleCircle对象的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(); } } }


 
 
 
 
 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值