第1关:选择题
任务描述
本关任务: 学习参考资料,完成选择题。
相关知识
为了完成本关任务,你需要掌握: 1.抽象类,2.抽象方法。
抽象类
public abstract class Shape { //抽象方法 //普通方法
} 说明: 抽象类是用关键字abstract修饰的类; 抽象类中可以包含抽象方法和普通方法,也可以没有抽象方法。
抽象方法
用abstract修饰的方法,且没有方法体。 比如: abstract class shape{ abstract double getArea(); } 说明: shape 是抽象类; getArea()是抽象方法,末尾以分号结束。
第2关:图形类及其矩形类和圆类的实现
任务描述
本关任务: 1.定义抽象类Shape,包含两个抽象方法getArea()和getCircum(),分别实现获取图形的面积和周长。一个普通方法print()用于输出面积和周长。 2.基于Shape类定义矩形类Ranctangle和圆类Circle。圆类包含数据成员有半径,矩形类包含数据成员的有长、宽,每个类都要重写从Shape类继承的两个抽象方法getArea()和getCircum():计算并获取面积和周长。 3.在测试类中创建圆类和矩形类的对象,调用方法print()输出面积和周长。
相关知识
为了完成本关任务,你需要掌握: 1.抽象类的定义, 2.抽象方法的定义, 3.基于父类定义子类, 4.方法重写, 5.创建类的对象,并通过对象调用方法。
测试输入: 预期输出: 周长:31.400000000000002面积:78.5 周长:12.0面积:8.0
提示: 数据无输出格式要求。
/*编程要求:请在下面标注 【】 的位置添加代码 */
//定义形状类Shape
abstract class Shape{
public abstract double GetArea(); //定义抽象方法GetArea()
public abstract double GetCircum(); //定义抽象方法GetCircum()
public void print()
{
System.out.println("周长:"+GetCircum()+"面积:"+GetArea());
}
}
//矩形类,从形状类Shape派生
class Rectangle extends Shape{
double width;
double length;
public Rectangle(double wid,double len){
this.width=wid;
this.length=len;
}
//重写GetArea()方法
public double GetArea(){
return(width*length);
}
//重写GetCircum()方法
public double GetCircum(){
return(width+width+length+length);
}
}
//圆类,从形状类派生
class Circle extends Shape{
public double radius;
public Circle(double r){
this.radius=r;
}
//重写GetArea()方法
public double GetArea(){
return(radius*radius*3.14);
}
//重写GetCircum()方法
public double GetCircum(){
return(2*3.14*radius);
}
}
//测试类Test
public class ShapeTest {
public static void main(String[] args){
Circle cir=new Circle(5); //创建圆的对象cir
Rectangle rec=new Rectangle(2,4); //创建矩形的对象rec
cir.print(); //输出圆的的信息
rec.print(); //输出矩形的的信息
}
}