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)进行格式化输出

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 getArea();

public abstract double getPerimeter();

}

class Square extends Shape{

private double length;

public Square(double length)

{

this.length = length;

}

public double getArea()

{

return length*length;

}

public double getPerimeter()

{

return 4 * length;

}

}

class Rectangle extends Square{

private double length;

private double wide;

public Rectangle(double length,double wide)

{

super(length);

this.length = length;

this.wide = wide;

}

public double getArea()

{

return length*wide;

}

public double getPerimeter()

{

return (length+wide)*2;

}

}

class Circle extends Shape{

private double radius;

public Circle(double radius)

{

this.radius = radius;

}

public double getArea()

{

return 3.1415926*radius*radius;

}

public double getPerimeter()

{

return 3.1415926*2*radius;

}

}

java shape类_Java——Shape类相关推荐

  1. java filereader类_Java FileReader类

    FileReader类从InputStreamReader类继承而来.该类按字符读取流中数据.可以通过以下几种构造方法创建需要的对象. 在给定从中读取数据的 File 的情况下创建一个新 FileRe ...

  2. java复用类_java复用类

    1. toString() 每一个非基本类型都有一个toString()方法:当编译器需要从对象获取一个string时,该对象的toString()方法就会被调用. 示例: class WaterSo ...

  3. java高级类_Java高级类特性(一)

    权限类内同包不同包子类不同包非子类 private √ × × × default √ √ × × protected √ √ √ × public √ √ √ √ 四.super关键字的使用 pac ...

  4. java 根据类名示例化类_Java即时类| from()方法与示例

    java 根据类名示例化类 即时类from()方法 (Instant Class from() method) from() method is available in java.time pack ...

  5. java 根据类名示例化类_Java即时类| EpochSecond()方法的示例

    java 根据类名示例化类 EpochSecond()方法的即时类 (Instant Class ofEpochSecond() method) Syntax: 句法: public static I ...

  6. java 大数类_Java大数类介绍

    java能处理大数的类有两个高精度大整数BigInteger和高精度浮点数BigDecimal,这两个类位于java.math包内,要使用它们必须在类前面引用该包:import java.math.B ...

  7. java 根据类名示例化类_Java即时类| plusMillis()方法与示例

    java 根据类名示例化类 即时类plusMillis()方法 (Instant Class plusMillis() method) plusMillis() method is available ...

  8. java 根据类名示例化类_Java LocalDateTime类| atOffset()方法与示例

    java 根据类名示例化类 LocalDateTime类atOffset()方法 (LocalDateTime Class atOffset() method) atOffset() method i ...

  9. java 根据类名示例化类_Java MathContext类| 带示例的getRoundingMode()方法

    java 根据类名示例化类 MathContext类的getRoundingMode()方法 (MathContext Class getRoundingMode() method) getRound ...

  10. java 根据类名示例化类_Java即时类| minusNanos()方法与示例

    java 根据类名示例化类 即时类minusNanos()方法 (Instant Class minusNanos() method) minusNanos() method is available ...

最新文章

  1. linux 命令之文件读取,head, tail, tailf, sed
  2. matlab 将矩阵中的0置为Inf(邻接矩阵)
  3. 一个类怎样引用另外一个类的成员变量或方法
  4. char和byte的区别
  5. [云炬创业基础笔记] 第四章测试11
  6. Linq to sql并发与事务
  7. uva562Dividing Coins
  8. python机器学习生物信息学
  9. Liferay中页面的权限控制
  10. [译]eBay Elasticsearch性能调优实践
  11. new Date() 获取当前时间对象(getFullYear、getMonth、getDate、getHours、getMinutes、getSeconds、getDay、getTime)
  12. 自媒体多平台矩阵怎么做?该如何管理自媒体矩阵?
  13. 常用数字电路模块:边沿检测电路
  14. matlab 端点检测 能零比法_端点检测方法
  15. 微信小程序-view(视图容器)
  16. agv ti 毫米波雷达_在毫米波雷达领域,TI构建起了一条完整的护城河
  17. G120系列变频器进行参数备份(上传或下载)的2种基本方法介绍(Startdrive+SD卡)
  18. 【农历九月十六日】:民族英雄 - 王二小80周年祭日
  19. 那些年追过的开源GNSS软件接收机(二)
  20. 企业网络订单的异常检测项目

热门文章

  1. HDU4506 小明系列故事——师兄帮帮忙
  2. Javascript创建对象的几种方式?
  3. eclipse3.4 SVN插件安装
  4. 慎用SELECT INTO复制表
  5. 【Android Studio】分类整理res/Layouts中的布局文件(创建子目录)
  6. Windows 7 硬盘安装方法
  7. internet网络 checksum校验和计算方法
  8. 从特殊到一般-C#中的类
  9. HALCON示例程序holes.hdev孔洞提取
  10. 【Python数据结构】——二叉查找树(查找、构建、删除、插入、打印)