T6 从抽象类shape类扩展出一个圆形类Circle (10分)

6-2 从抽象类shape类扩展出一个圆形类Circle (10分)

请从下列的抽象类shape类扩展出一个圆形类Circle,这个类圆形的半径radius作为私有成员,类中应包含初始化半径的构造方法。

public abstract class shape {// 抽象类

public abstract double getArea();// 求面积

public abstract double getPerimeter(); // 求周长

}

主类从键盘输入圆形的半径值,创建一个圆形对象,然后输出圆形的面积和周长。保留4位小数。

圆形类名Circle

裁判测试程序样例:

import java.util.Scanner;
import java.text.DecimalFormat;

abstract class shape {// 抽象类
     /* 抽象方法 求面积 */
    public abstract double getArea( );

    /* 抽象方法 求周长 */
    public abstract double getPerimeter( );
}

/* 你提交的代码将被嵌入到这里 */

public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        DecimalFormat d = new DecimalFormat("#.####");// 保留4位小数
         double r = input.nextDouble( ); 
        shape c = new  Circle(r);

        System.out.println(d.format(c.getArea()));
        System.out.println(d.format(c.getPerimeter()));
        input.close();
    } 
}

输入样例:
3.1415926
输出样例:
31.0063
19.7392

class Circle extends shape {
	private double radius;
	public Circle(double r) {
		radius=r;
	}
	public double getArea() {
		return Math.PI*radius*radius;
	}
	public double getPerimeter() {
		return Math.PI*2*radius;
	}
}

在这里插入图片描述

### 回答1: 圆形circle是从抽象类shape扩展而来的。它继承了shape的属性和方法,并且还有自己特有的属性和方法。在圆形circle中,我们可以定义圆的半径、圆心坐标等属性,并且可以实现计算圆的面积周长等方法。通过继承抽象类shape圆形circle可以更加方便地实现圆形的相关操作,同时也符合面向对象编程的思想。 ### 回答2: 抽象类是一种不能被实例化的,它通常用来定义一组接口,以便其他可以继承这些接口并实现它们。在此基础上,我们可以将这些抽象类扩展为具有实际功能的,并添加更多具体化的属性和方法。 从抽象类shape扩展圆形circle,我们需要定义一个圆形,它需要继承shape中抽象方法,同时实现圆形独有的属性和方法。具体操作可以如下: 1. 创建circle,继承shape; 2. 添加属性,如圆的半径radius; 3. 添加构造函数,接收圆形所需的属性; 4. 实现shape中的抽象方法,如计算面积的方法area(); 5. 实现圆形独有的方法,如计算圆周长的方法circumference(); 6. 实现get和set方法,用于获取和设置圆形的属性; 7. 创建一个circle对象,并调用其方法以验证其正确性。 通过以上操作,我们就可以成功地从抽象类shape扩展圆形circle,使其成为可实例化的具体。此外,我们还可以从shape扩展其他形状的,如矩形、三角形等,以此实现更加丰富的功能和形状。 ### 回答3: 抽象类Shape一个,它定义了图形应具备的一些基本属性和行为,如获取面积、获取周长等方法,但具体的图形还需要继承Shape并重写其中的方法才能形成一个完整的图形。在这个基础上,我们可以通过扩展Shape,来衍生一个圆形Circle。 首先,我们需要明确圆形应该具备哪些属性和方法。从几何特征来看,圆形具备一个半径r和一个圆心(x,y);从计算面积周长的角度来看,圆形应该重写Shape中的getArea()和getPerimeter()方法。因此,我们需要在Circle中定义这些属性和方法。 其次,为了让Circle能够继承Shape,并获得Shape中定义的一些共通的属性和方法,我们需要在Circle的定义中使用extends关键字继承Shape,比如: public class Circle extends Shape { //定义圆形半径和圆心 private double radius; private double x; private double y; //构造函数 public Circle(double radius, double x, double y){ this.radius = radius; this.x = x; this.y = y; } //重写Shape的获取面积方法 public double getArea(){ return Math.PI * Math.pow(radius, 2); } //重写Shape的获取周长方法 public double getPerimeter(){ return 2 * Math.PI * radius; } } 最后,我们可以通过实例化一个Circle对象并调用其中的方法,来测试Circle是否正确地继承和重写了Shape的一些方法和属性,比如: Circle myCircle = new Circle(5.0, 1.0, 1.0); //以半径5、圆心为(1,1)的圆形 System.out.println(myCircle.getArea()); //输出圆形面积 System.out.println(myCircle.getPerimeter()); //输出圆形周长 总之,通过对Shape扩展,我们可以很方便地衍生一个圆形Circle,并且可以拓展其他的图形,使得代码更加简洁可读,同时具有良好的扩展性和维护性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值