实现图形接口及多态性

编写程序,使用接口及类实现多态性,类图结构如下所示:

类图.jpg

其中:

GetArea为一个接口,无属性,只有一个GetArea(求面积)的抽象方法;
Circle及Rectangle分别为圆类及矩形类,分别实现GetArea接口
要求:在Main类的主方法中分别定义一个圆类对象及矩形类对象(其属性值由键盘输入),使用接口的引用分别调用圆类对象及矩形类对象的求面积的方法,直接输出两个图形的面积值。(要求只保留两位小数)
输入格式:
从键盘分别输入圆的半径值及矩形的宽、长的值,用空格分开。

输出格式:
如果输入的圆的半径值及矩形的宽、长的值非法(≤0),则输出Wrong Format
如果输入合法,则分别输出圆的面积和矩形的面积值(各占一行),保留两位小数。
输入样例1:
在这里给出一组输入。例如:

2 3.6 2.45
输出样例1:
在这里给出相应的输出。例如:

12.57
8.82
输入样例2:
在这里给出一组输入。例如:

9 0.5 -7.03
输出样例2:
在这里给出相应的输出。例如:

Wrong Format

import java.util.Scanner;

interface GetArea {
	abstract double getArea();
}

class Circle implements GetArea {
	public double radius;

	public double getRadius() {
		return radius;
	}

	public void setRadius(double radius) {
		this.radius = radius;
	}
	
	public Circle(double radius) {
		
	}
	
	public Circle() {
		
	}

	@Override
	public double getArea() {
		double area = 3.1415936535 * radius * radius;
		return area;
	}
	
}

class Rectangle implements GetArea {
	public double width;
	public double length;
	
	public double getWidth() {
		return width;
	}

	public void setWidth(double width) {
		this.width = width;
	}

	public double getLength() {
		return length;
	}

	public void setLength(double length) {
		this.length = length;
	}

	public Rectangle() {
		
	}
	
	public Rectangle(double width , double length) {
		
	}

	@Override
	public double getArea() {
		double area = width * length;
		return area;
	}
	
}

public class Main {

	public static void main(String[] args) {
		Circle circle = new Circle();
		Rectangle rec = new Rectangle();
		
		Scanner in = new Scanner(System.in);
		
		double r = in.nextDouble();//半径
		double a = in.nextDouble();//宽
		double b = in.nextDouble();//长
		
		if(r<=0||a<=0||b<=0) {
			System.out.println("Wrong Format");
			System.exit(0);
		} else {
			
		}
		
		circle.setRadius(r);
		rec.setWidth(a);
		rec.setLength(b);
		System.out.printf("%.2f\n",circle.getArea());
		System.out.printf("%.2f\n",rec.getArea());
		
		in.close();
		System.exit(0);
	}

}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

P-chanY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值