129 - Shape类

形状类设计与实现

129 - Shape类

Time Limit: 1000   Memory Limit: 65535
Submit: 441  Solved: 259

Description

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

在main函数中,分别构造三个子类的对象,并输出他们的周长、面积.

Input

正方形类的边长
长方形类的长宽
圆类的半径

Output

正方形的周长、面积
长方形的周长、面积
圆形的周长、面积

Sample Input

1
1 2
2

Sample Output

4.00 1.00
6.00 2.00
12.57 12.57

HINT

用System.out.printf("%.2f",d)进行格式化输出

Pre Append Code

import java.util.Scanner;
public class Main{
    public static void main(String[] args) {
         Scanner scan = new Scanner(System.in);      
         double length = scan.nextDouble();
         Square s = new Square(length);
         System.out.printf("%.2f ",s.getPerimeter());
         System.out.printf("%.2f\n",s.getArea());

         length = scan.nextDouble();
         double wide = scan.nextDouble();
         Rectangle r = new Rectangle(length,wide);
         System.out.printf("%.2f ",r.getPerimeter());
         System.out.printf("%.2f\n",r.getArea());

         double radius = scan.nextDouble();
         Circle c = new Circle(radius);
         System.out.printf("%.2f ",c.getPerimeter());
         System.out.printf("%.2f\n",c.getArea());

         scan.close(); 
    }
}
abstract class Shape
{
	public abstract double getPerimeter();
	public abstract double getArea();
}
class Square extends Shape
{
	double length;
	public Square(double length)
	{
		this.length = length;
	}
	@Override
	public double getPerimeter()
	{
		return 4 * length;
	}
	@Override
	public double getArea()
	{
		return length * length;
	}
}
class Rectangle extends Square
{
	double width;
	public Rectangle(double length,double width)
	{
		super(length);
		this.width = width;
	}
	@Override
    public double getArea() {
        return length*width;
    }

    @Override
    public double getPerimeter() {
        return 2*(length+width);
    }
}
class Circle extends Shape
{
	double r;
	public Circle(double r)
	{
		this.r = r;
	}
	@Override
	public double getArea() 
	{
        return Math.PI * r * r;
    }
    @Override
    public double getPerimeter() 
    {
        return 2 * Math.PI * r;
    }
}

 

``` <section class="vs-hero-wrapper "> <div class="vs-hero-carousel" data-height="770" data-container="1900" data-slidertype="responsive" data-navbuttons="true"> <div class="vs-wave-shape style3"> <svg viewBox="0 0 1920 295" fill="none" xmlns="http://www.w3.org/2000/svg"> <path class="wave-path" fill-rule="evenodd" clip-rule="evenodd" d="M1920 295V202.758C1906.48 131.342 1843.63 77.168 1768.34 77.168C1739.37 77.168 1711.54 85.1814 1687.4 100.128C1650.68 38.4074 1584.56 0 1511.11 0C1412.1 0 1329.2 70.2842 1309.68 163.577C1294.03 136.928 1265.08 119 1232 119C1215.11 119 1198.88 123.673 1184.8 132.389C1163.39 96.397 1124.83 74 1082 74C1022.17 74 972.422 118.018 963.444 175.369C947.459 160.855 926.246 152 903 152C886.11 152 869.88 156.673 855.803 165.389C834.387 129.397 795.832 107 753 107C710.158 107 672.487 129.569 651.251 163.442C635.542 150.075 615.199 142 593 142C576.11 142 559.88 146.673 545.803 155.389C524.387 119.397 485.832 97 443 97C400.012 97 362.23 119.723 341.034 153.789C324.552 132.631 298.841 119 270 119C253.11 119 236.88 123.673 222.803 132.389C201.387 96.397 162.832 74 120 74C53.8333 74 0.000244141 127.833 0.000244141 194C0.000244141 194.41 0.000244141 194.835 0.0152435 195.245L0.000244141 195.248V295H1920Z" /> </svg> </div> <!-- Slide 1--> <div class="ls-slide" data-ls="duration:12000; transition2d:5; kenburnszoom:out; kenburnsscale:1.1;"> <img width="1920" height="770" src="upload/silder/silder01.jpg" class="ls-bg" alt="bg" decoding="async"> </div> <!-- Slide 2--> <div class="ls-slide" data-ls="duration:12000; transition2d:5; kenburnszoom:out; kenburnsscale:1.1;"> <img width="1920" height="770" src="upload/silder/silder02.jpg" class="ls-bg" alt="bg" decoding="async"> </div> <!-- Slide 3--> <div class="ls-slide" data-ls="duration:12000; transition2d:5; kenburnszoom:out; kenburnsscale:1.1;"> <img width="1920" height="770" src="upload/silder/silder03.jpg" class="ls-bg" alt="bg" decoding="async"> </div> <!-- Slide 3--> <div class="ls-slide" data-ls="duration:12000; transition2d:5; kenburnszoom:out; kenburnsscale:1.1;"> <img width="1920" height="770" src="upload/silder/silder04.jpg" class="ls-bg" alt="bg" decoding="async"> </div> <!-- Slide 3--> <div class="ls-slide" data-ls="duration:12000; transition2d:5; kenburnszoom:out; kenburnsscale:1.1;"> <img width="1920" height="770" src="upload/silder/silder05.jpg" class="ls-bg" alt="bg" decoding="async"> </div> <!-- Slide 3--> <div class="ls-slide" data-ls="duration:12000; transition2d:5; kenburnszoom:out; kenburnsscale:1.1;"> <img width="1920" height="770" src="upload/silder/silder06.jpg" class="ls-bg" alt="bg" decoding="async"> </div> <!-- Slide 3--> <div class="ls-slide" data-ls="duration:12000; transition2d:5; kenburnszoom:out; kenburnsscale:1.1;"> <img width="1920" height="770" src="upload/silder/silder07.jpg" class="ls-bg" alt="bg" decoding="async"> </div> </div> </section>```想<div class=“vs-wave-shape style3”>on top class=“ls-slide” 並跟隨ls-slide底部, 結合在html , 不修改及增加css, 以及在图片上方
03-14
``` <section class="vs-hero-wrapper "> <div class="vs-hero-carousel" data-height="770" data-container="1900" data-slidertype="responsive" data-navbuttons="true"> <!-- Slide 1--> <div class="ls-slide" data-ls="duration:12000; transition2d:5; kenburnszoom:out; kenburnsscale:1.1;"> <img width="1920" height="295" src="assets/img/hero/h-s-2-2.png" class="ls-l ls-img-layer" alt="bg" decoding="async" style="font-size:36px; color:#000; stroke:#000; stroke-width:0px; text-align:left; font-style:normal; text-decoration:none; text-transform:none; font-weight:400; letter-spacing:0px; background-position:0% 0%; background-repeat:no-repeat; background-clip:border-box; overflow:visible; top:775px; left:-10px; -webkit-background-clip:border-box;" data-ls="static:forever;"> <img width="1920" height="770" src="upload/silder/silder01.jpg" class="ls-bg" alt="bg" decoding="async"> </div> <!-- Slide 2--> <div class="ls-slide" data-ls="duration:12000; transition2d:5; kenburnszoom:out; kenburnsscale:1.1;"> <img width="1920" height="770" src="upload/silder/silder02.jpg" class="ls-bg" alt="bg" decoding="async"> </div> <!-- Slide 3--> <div class="ls-slide" data-ls="duration:12000; transition2d:5; kenburnszoom:out; kenburnsscale:1.1;"> <img width="1920" height="770" src="upload/silder/silder03.jpg" class="ls-bg" alt="bg" decoding="async"> </div> <!-- Slide 3--> <div class="ls-slide" data-ls="duration:12000; transition2d:5; kenburnszoom:out; kenburnsscale:1.1;"> <img width="1920" height="770" src="upload/silder/silder04.jpg" class="ls-bg" alt="bg" decoding="async"> </div> <!-- Slide 3--> <div class="ls-slide" data-ls="duration:12000; transition2d:5; kenburnszoom:out; kenburnsscale:1.1;"> <img width="1920" height="770" src="upload/silder/silder05.jpg" class="ls-bg" alt="bg" decoding="async"> </div> <!-- Slide 3--> <div class="ls-slide" data-ls="duration:12000; transition2d:5; kenburnszoom:out; kenburnsscale:1.1;"> <img width="1920" height="770" src="upload/silder/silder06.jpg" class="ls-bg" alt="bg" decoding="async"> </div> <!-- Slide 3--> <div class="ls-slide" data-ls="duration:12000; transition2d:5; kenburnszoom:out; kenburnsscale:1.1;"> <img width="1920" height="770" src="upload/silder/silder07.jpg" class="ls-bg" alt="bg" decoding="async"> </div> </div> </section> <div class="vs-wave-shape style3"> <svg viewBox="0 0 1920 295" fill="none" xmlns="http://www.w3.org/2000/svg"> <path class="wave-path" fill-rule="evenodd" clip-rule="evenodd" d="M1920 295V202.758C1906.48 131.342 1843.63 77.168 1768.34 77.168C1739.37 77.168 1711.54 85.1814 1687.4 100.128C1650.68 38.4074 1584.56 0 1511.11 0C1412.1 0 1329.2 70.2842 1309.68 163.577C1294.03 136.928 1265.08 119 1232 119C1215.11 119 1198.88 123.673 1184.8 132.389C1163.39 96.397 1124.83 74 1082 74C1022.17 74 972.422 118.018 963.444 175.369C947.459 160.855 926.246 152 903 152C886.11 152 869.88 156.673 855.803 165.389C834.387 129.397 795.832 107 753 107C710.158 107 672.487 129.569 651.251 163.442C635.542 150.075 615.199 142 593 142C576.11 142 559.88 146.673 545.803 155.389C524.387 119.397 485.832 97 443 97C400.012 97 362.23 119.723 341.034 153.789C324.552 132.631 298.841 119 270 119C253.11 119 236.88 123.673 222.803 132.389C201.387 96.397 162.832 74 120 74C53.8333 74 0.000244141 127.833 0.000244141 194C0.000244141 194.41 0.000244141 194.835 0.0152435 195.245L0.000244141 195.248V295H1920Z" /> </svg> </div>```想assets/img/hero/h-s-2-2.png 換成與class="vs-wave-shape, 並可跟隨視窗大小變動, 結合在html , 不修改及增加css, 以及在图片上方
最新发布
03-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值