133 - Shape类-2

Description

定义一个形状类Shape,提供计算周长getPerimeter()和面积getArea()的函数
定义一个子类正方形类Square继承自Shape类,拥有边长属性,提供构造函数,能够计算周长getPerimeter()和面积getArea()
定义一个子类长方形类Rectangle继承自Square类,拥有长、宽属性,提供构造函数,能够计算周长getPerimeter()和面积getArea()
定义一个子类圆形类Circle继承自Shape,拥有半径属性,提供构造函数,能够计算周长getPerimeter()和面积getArea()

在main函数中,分别构造三个Shape类的变量,分别指向一个Square、Rectangle、Circle对象,并输出他们的周长、面积.
import java.util.Scanner;

public class Main {
	public static void main(String [] args) {
		Scanner sc = new Scanner(System.in);
		double k = sc.nextDouble();
		Square s = new Square(k);
		System.out.println(String.format("%.2f",s.getPerimeter())+" "+String.format("%.2f", s.getArea()));
		
		k = sc.nextDouble();
		double l = sc.nextDouble();
		Rectangle r = new Rectangle(k,l);
		System.out.println(String.format("%.2f",r.getPerimeter())+" "+String.format("%.2f", r.getArea()));
			
		k = sc.nextDouble();
		Circle c = new Circle(k);
		System.out.println(String.format("%.2f",c.getPerimeter())+" "+String.format("%.2f", c.getArea()));
		
		
		sc.close();
	}

}

class Shape{
	//int Bc;
	//Shape(){}
	double getPerimeter() {
		return 0;
	}
	
    double getArea() {
    	return 0;
    }
}
class Square extends Shape{
	double l ;//长
	Square(double l){
		this.l = l;
	}
	double getPerimeter() {
		return l*4;
	}
	
	double getArea() {
		return l*l;
	}
	
}

class Rectangle extends Square{

	double h;//宽
	Rectangle(double l,double h) {
		super(l);
		this.h = h;
		// TODO Auto-generated constructor stub
	}
	
	double getPerimeter() {
		return 2.0*(l+h);
	}
	
	double getArea() {
		return l*h;
	}
	
}

class Circle extends Shape{
	double r;//半径
	Circle(double r){
		this.r = r;
	}
	
	double getPerimeter() {
		return 2.0*Math.PI*r;
	}
	
	double getArea() {
		return Math.PI*r*r;
	}
	
}

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值