实验三 类的继承与派生

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验三类的继承与派生

实验目的

1.掌握类及类的声明

2.掌握对象的定义和使用

3.掌握接口9的定义与实现

实验内容

1. 使用类来封装对象的属性和功能

编写一个Java程序,该程序中有3个类:Trangle、Lader和Circle,分别用来刻画“三角形”、“梯形”和“圆形”。具体要求如下:

Trangle类具有类型为double的三个边(sideA,sideB,sideC),以及周长(length)、面积(area)属性,Trangle类具有返回周长(getLength)、面积(getArea)以及修改三个边(setABC)的功能。另外还有一个boolean型的属性(boo),该属性用来判断三个数是否构成一个三角形。

Lader类具有类型为double的上底(above)、下底(bottom)、高(height)、面积(area)属性,具有返回面积(getArea)的功能。

Circle类具有类型为double的半径(radius)、周长(length)和面积(area)属性,具有返回周长(getLength)、面积(getArea)的功能。

把程序中的代码补充完整,并查看结果。

// Trangle.java

class Trangle//三角形

{

double sideA,sideB,sideC,area,length;

boolean boo;

public Trangle(double a,doubleb,double c)

{

//带参数的构造方法

setABC(a,b,c);

}

double getLength()

{

//方法体,要求计算出length的值并返回

【补充代码…仿照getArea()方法编写】

}

public double getArea()

{

if(boo)

{

double p=(sideA+sideB+sideC)/2.0;

area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC)) ;

return area;

}

else

{

System.out.println("不是一个三角形,不能计算面积");

return 0;

}

}

public void setABC(double a,doubleb,double c)

{

//参数a,b,c分别赋值给sideA,sideB,sideC

【补充代码…】

if(【补充代码】) //a,b,c构成三角形的条件表达式

{

【补充代码】 //给boo赋值。

}

else

{

【补充代码】 //给boo赋值。

}

}

}

// Lader.java

class Lader//梯形

{

double above,bottom,height,area;

Lader(double a,doubleb,double h)

{

//带参数的构造方法,将参数a,b,h分别赋值给above,bottom,height 【补充代码…】

}

double getArea()

{

//方法体,,要求计算出area返回

【补充代码…】

}

}

// Circle.java

class Circle //圆形

{

double radius,area, length;

Circle(double r)

{

//带参数的构造方法

【补充代码】

}

double getArea()

{

//方法体,要求计算出area返回

【补充代码…】

}

double getLength()

{

//getArea方法体的代码,要求计算出length返回【补充代码…】

}

void setRadius(double newRadius)

{

radius=newRadius;

}

double getRadius()

{

return radius;

}

}

// AreaAndLength.java

public class AreaAndLength

{

public static void main(String args[])

{

double length,area;

Circle circle = null;

Trangletrangle = null;

Laderlader = null;

【补充代码】 //创建对象circle(半径为5)

【补充代码】 //创建对象trangle(边长分别为3,4,5)

【补充代码】 //创建对象lader

【补充代码】 // circle调用方法返回周长并赋值给length

System.out.println("圆的周长:"+length);

【补充代码】 // circle调用方法返回面积并赋值给area

System.out.println("圆的面积:"+area);

【补充代码】 // trangle调用方法返回周长并赋值给length

System.out.println("三角形的周长:"+length);

【补充代码】 // trangle调用方法返回面积并赋值给area

System.out.println("三角形的面积:"+area);

【补充代码】 // lader调用方法返回面积并赋值给area

System.out.println("梯形的面积:"+area);

【补充代码】 // trangle调用方法设置三个边,要求将三个边修改为12,34,1。【补充代码】 // trangle调用方法返回面积并赋值给area

System.out.println("三角形的面积:"+area);

【补充代码】 // trangle调用方法返回周长并赋值给length

System.out.println("三角形的周长:"+length);

}

}

2. 掌握上转型对象的使用,多态的特性

定义一个抽象(abstract)类,类名为Employee。 Employee的子类有YearWorker、MonthWorker和WeekWorker。YearWorker对象按年领取薪水(每年10万),MonthWorker对象按月领取薪水(每月1万),WeekWorker对象按周领取薪水(每周0.5万,设定一个月4周)。Employee类有一个抽象(abstract)方法:

public abstract double earnings();

相关文档
最新文档