定义接口或类 Shape,定义求周长的方法length()。

定义如下类,实现接口Shape或父类Shape的方法。

(1)三角形类Triangle (2)长方形类Rectangle (3)圆形类Circle等。

定义测试类ShapeTest,用Shape接口(或类)定义变量shape,用其指向不同类形的对象,输出各种图形的周长。并为其他的Shape接口实现类提供良好的扩展性。

提示: 计算圆周长时PI取3.14。

输入格式:

输入多组数值型数据(double);

一行中若有1个数,表示圆的半径;

一行中若有2个数(中间用空格间隔),表示长方形的长度、宽度。

一行中若有3个数(中间用空格间隔),表示三角形的三边的长度。(需要判断三个边长是否能构成三角形)

若输入数据中有0或负数,则不表示任何图形,周长为0。

输出格式:

行数与输入相对应,数值为根据每行输入数据求得的图形的周长。

输入样例:

在这里给出一组输入。例如:

1
2 3
4 5 6
2
-2
-2 -3

输出样例:

在这里给出相应的输出。例如:

6.28
10.00
15.00
12.56
0.00
0.00
import java.util.Scanner;
public class Main{public static void main(String[] args){Scanner sc=new Scanner(System.in);double y=0.00;while(sc.hasNext()){String strData =sc.nextLine();String[] arrayData = strData.split(" ");int count = arrayData.length;if(count==1){double r = Double.parseDouble(arrayData[0]);if(r>0){Circle ab=new Circle(r);ab.length();}else{System.out.printf("%.2f",y);System.out.print("\n");}}if(count==2){double a = Double.parseDouble(arrayData[0]);double b = Double.parseDouble(arrayData[1]);if(a>0 && b>0){Rectangle ac=new Rectangle(a,b);ac.length();}else{System.out.printf("%.2f",y);System.out.print("\n");}}if(count==3){double c = Double.parseDouble(arrayData[0]);double d = Double.parseDouble(arrayData[1]);double e = Double.parseDouble(arrayData[2]);if(c>0 && d>0 && d>0){if(c+d>e && c+e>d &&d+e>c){Triangle ac=new Triangle(c,d,e);ac.length();}else{System.out.printf("%.2f",y);System.out.print("\n");}}else{System.out.printf("%.2f",y);System.out.print("\n");}}}}
}
interface Shape{void length();
}
class Circle implements Shape{double r=0;public double uc;Circle(){}Circle(double r){this.r=r;}public void length(){uc=1.0*2*3.14*r;System.out.printf("%.2f",uc);System.out.print("\n");}
}
class Rectangle implements Shape{double a,b;Rectangle(){}Rectangle(double a,double b){this.a=a;this.b=b;}public void length(){double uc;uc=1.0*(a*2+b*2);System.out.printf("%.2f",uc);System.out.print("\n");}
}
class Triangle implements Shape{double c,d,e;Triangle(){}Triangle(double c,double d,double e){this.c=c;this.d=d;this.e=e;}public void length(){double uc;uc=(this.c+this.d+this.e);System.out.printf("%.2f",uc);System.out.print("\n");}
}

7-1 sdut-oop-6 计算各种图形的周长(多态)相关推荐

  1. Java练习 SDUT-3338_计算各种图形的周长(接口与多态)

    计算各种图形的周长(接口与多态) Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 定义接口Shape,定义求周长的方法l ...

  2. 计算各种图形的周长(接口与多态)(Java)

    计算各种图形的周长(接口与多态) Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 定义接口Shape,定义求周长的方法l ...

  3. sdut-oop-6 计算各种图形的周长(多态)

    sdut-oop-6 计算各种图形的周长(多态) 定义接口或类 Shape,定义求周长的方法length(). 定义如下类,实现接口Shape或父类Shape的方法. (1)三角形类Triangle ...

  4. Python 面向对象 计算各种图形的周长(接口与多态)

    Python 面向对象 计算各种图形的周长(接口与多态) Description 定义接口Shape,定义求周长的方法length(). 定义如下类实现接口Shape的抽象方法: (1)三角形类Tri ...

  5. Java计算各种图形的周长、面积利用接口,多态等知识实现

    知识点 接口,接口的实现 方法的重写 多态的运用 题目 利用接口.类.多态等知识,计算各种图形的周长和面积(圆,长方形,正方形) 解题思路: 创建一个接口Calculate,包含有三个方法, 求解周长 ...

  6. 7-3 sdut-oop-6 计算各种图形的周长(接口与多态) (10 分)

    (备注:本人只是一个小小的知识搬运工,内容包含个人见解,如有错误请多多指教!) 7-3 sdut-oop-6 计算各种图形的周长(接口与多态) (10 分) 定义接口Shape,定义求周长的方法len ...

  7. Java—计算各种图形的周长(接口与多态)

    Java-计算各种图形的周长(接口与多态) Description 定义接口Shape,定义求周长的方法length(). 定义如下类实现接口Shape的抽象方法: (1)三角形类Triangle ( ...

  8. 计算各种图形的周长 python java

    计算各种图形的周长(多态) 定义接口或类 Shape,定义求周长的方法length(). 定义如下类,实现接口Shape或父类Shape的方法.(1)三角形类Triangle (2)长方形类Recta ...

  9. 计算各种图形的周长(接口与多态)_JAVA

    Description 定义接口Shape,定义求周长的方法length(). 定义如下类实现接口Shape的抽象方法: (1)三角形类Triangle (2)长方形类Rectangle (3)圆形类 ...

  10. PTA 7-7 sdut-oop-6 计算各种图形的周长(接口与多态) (10 分) JAVA

    定义接口Shape,定义求周长的方法length(). 定义如下类实现接口Shape的抽象方法: (1)三角形类Triangle (2)长方形类Rectangle (3)圆形类Circle等. 定义测 ...

最新文章

  1. 关于 MySQL LEFT JOIN 你可能需要了解的三点
  2. ValueError: operands could not be broadcast together with shapes解决
  3. 解析没有id的html,网络爬虫干货,还在用正则匹配html?专业的解析组件了解一下...
  4. UnityShader入门精要-3.3 UnityShader的结构
  5. python2.7练习小例子(二)
  6. [转载]2000/XP下删除隐藏旧网卡方法
  7. 信安 | 网上吵个架都能被封号?是“黑科技”还是“黑产”?
  8. Objective-C设计模式——单例Singleton(对象创建)
  9. Ubuntu 无法获得锁
  10. 王朔:中国文化沉淀了大量腐烂变质垃圾
  11. WinForm列表控件美化
  12. 利用pytorch实现图像分类
  13. 微信备份到云服务器失败是怎么回事,电脑微信备份连接失败的原因(解决利用电脑版微信备份的方法)...
  14. 递归算法求n个数字的全排列
  15. 深度学习环境搭建超级详解(Miniconda、pytorch安装)
  16. 传感器实训心得体会_传感器心得体会
  17. TCP穿透主流商用NAT产品的主要技术研究
  18. 兴禾自动化IPO被终止:前苹果员工不足两年退出获利8000万 小米是股东
  19. 为什么谷歌不会发生“魏则西事件”?
  20. JVM源码简析(楔子)-对象内存分配过程和PS回收器中YGC触发FGC的现象

热门文章

  1. python中字符串和json的转换,Python笔记——json和字符串之间的相互转换
  2. 基于SSM的线上电子文件资源下载系统JavaWeb电子资源管理系统(源码调试+讲解+文档)
  3. matlab伽玛分布如何表示,matlab gamma函数
  4. 《译 SFML Essentials 英文版》—— 《第五章》 “ Exploring a World of Sound and Text ”
  5. 数智运营 创见未来| 2023永洪科技城市峰会·北京站成功举办
  6. Zabbix和agent端部署、图示Zabbix Web端搭建以及添加设备的4种方法、Zabbix API
  7. 基于OCR的图片字符识别可行性研究
  8. js转字符串为小数,且保留2位
  9. Ubuntu 删除应用图标
  10. SpringBoot修改tomcat配置