题目:用Java编写一个计算随意给定值的三角形/圆形/矩形的周长和面积
代码如下:
文件名:Shape.java

/*** 抽象类Shape 是其他三个形状的父类 * 其他三个类要继承重写getArea()和getPerimeter()方法**/
public abstract class Shape {public static final double PI=3.14;public abstract double getArea();public abstract double getPerimeter();
}

文件名:Circle.java

/*** 继承Shape类**/
public class Circle extends Shape{double r;public Circle(double r){this.r=r;}@Override   public double getArea(){return Shape.PI*r*r;}@Overridepublic double getPerimeter(){return Shape.PI*r*2;}}

文件名:Rectangle.java

/*** 继承Shape类**/public class Rectangle extends Shape {double m, n;public Rectangle(double m, double n) {this.m = m;this.n = n;}@Overridepublic double getArea() {return m * n;}@Overridepublic double getPerimeter() {return 2 * (m + n);}}

文件名:Triangle.java

/*** 继承Shape类**/
public class Triangle extends Shape {double a, b, c;public Triangle(double a, double b, double c) {this.a = a;this.b = b;this.c = c;}@Overridepublic double getArea() {double p = (a + b + c) / 2;if ((a + b) > c && (a + c) > b && (b + c) > c) {return Math.sqrt(p * (p - a) * (p - b) * (p - c));} else {System.out.println("wrong values");return -1;}}@Overridepublic double getPerimeter() {if ((a + b) > c && (a + c) > b && (b + c) > c) {return a + b + c;} else {System.out.println("wrong values");return -1;}}
}

文件名:Test.java

package task.daily.April.TwentyFirst;import java.util.Scanner;public class Test {public static void main(String[] args) {Scanner sc = new Scanner(System.in);System.out.println("choose the shape which is the one you want calculate it's area and Perimeter:");System.out.println("1.Circle\t2.Triangle\t3.Rectangle");try {int choice = sc.nextInt();switch (choice) {case 1:System.out.println("input r:");try {double r = sc.nextDouble();Shape s = new Circle(r);System.out.println("the area of the circle is :" + s.getArea()+ "\nthe perimeter of the circle is :" + s.getPerimeter());} catch (Exception e) {System.out.println("wrong");}break;case 2:System.out.println("input a,b,c:");double a, b, c;try {a = sc.nextDouble();b = sc.nextDouble();c = sc.nextDouble();Shape s = new Triangle(a, b, c);System.out.println("the area of the circle is :" + s.getArea()+ "\nthe perimeter of the circle is :" + s.getPerimeter());} catch (Exception e) {System.out.println("wrong");}break;case 3:System.out.println("input m,n:");double m, n;try {m = sc.nextDouble();n = sc.nextDouble();Shape s = new Rectangle(m, n);System.out.println("the area of the circle is :" + s.getArea()+ "\nthe perimeter of the circle is :" + s.getPerimeter());} catch (Exception e) {System.out.println("wrong");}break;}} catch (Exception e) {System.out.println("please choose a correct number");}sc.close();}
}

通过子类继承父类和子类的构造方法对不同的形状需要的值进行赋值,对继承和抽象类做了一个小小的应用


初学Java,欢迎大家对错误批评指正,指点迷津

Java小程序之计算三角形/圆形/矩形的周长和面积相关推荐

  1. java编写程序实现求三角形、正方形和圆的面积

    java编写程序实现求三角形.正方形和圆的面积,要求先设计一个公共的父类,在其中·定义求面积的方法,再继承得到各种形状 package practice3; abstract class shape{ ...

  2. Python 实战案例--计算圆、矩形的周长和面积

    import math# 计算圆的面积 def circle_area(radius):return math.pi * radius * radius# 计算圆的周长 def circle_peri ...

  3. java继承求三角形圆形面积_java用接口、多态、继承、类计算三角形和矩形周长及面积的方法...

    本文实例讲述了java用接口.多态.继承.类计算三角形和矩形周长及面积的方法.分享给大家供大家参考.具体如下: 定义接口规范: /** * @author vvv * @date 2013-8-10 ...

  4. java定义一个方法计算三角形,长方形,圆形面积和周长

    java定义一个方法计算三角形,长方形,圆形面积和周长 /*** 定义一个方法,返回一个圆的周长 半径* 定义一个方法,返回一个圆的面积 半径* 定义一个方法,返回一个矩形的周长 长 宽* 定义一个方 ...

  5. java继承类长方形面积_java_java用接口、多态、继承、类计算三角形和矩形周长及面积的方法,本文实例讲述了java用接口、多 - phpStudy...

    java用接口.多态.继承.类计算三角形和矩形周长及面积的方法 本文实例讲述了java用接口.多态.继承.类计算三角形和矩形周长及面积的方法.分享给大家供大家参考.具体如下: 定义接口规范: /** ...

  6. 【Java基础】使用swing对话框编写一个程序:输入长和宽,计算矩形的周长和面积

    输入矩形的长和宽,计算矩形的周长和面积. 来源:丁振凡老师编著的<Java语言程序设计(第2版)> import javax.swing.*;public class Demo02Task ...

  7. java小程序_Java小程序

    java小程序 An applet is a special kind of Java program that runs in a Java enabled browser. This is the ...

  8. 【开发日常】【Java】Java小程序汽车租赁

    <Java小程序--汽车租赁> 1.描述:刚学Java写的小程序,用到类的继承,多态,abstract抽象方法. 2.工具:eclipse.exe 3.功能:选择子类(轿车 / 客车) 选 ...

  9. 3.每天一个java小程序之累加累乘

    3.每天一个java小程序之累加累乘 java小练习之数的累加累乘,在于锻炼数学计算思维. 每天一个小程序,每天进步一点点. 代码如下: package com.zou; import java.ut ...

最新文章

  1. java 代理的三种实现方式
  2. python自动选取空闲gpu
  3. IOCP之accept、AcceptEx、WSAAccept的区别
  4. Perl: print @globbing.\n; 和 print @globbing; 不一样,一个已经转换为数组元素个数了...
  5. vue中进度条写法_vue实现简单loading进度条
  6. C++11 range-based for loop
  7. java小新人 带着萌新看springboot源码
  8. 手撕Vue-Router
  9. 【Golang】Go语言defer用法大总结(含return返回机制)
  10. Bongiovi DPS for Mac - 优秀的声音增强软件
  11. python批量切换图片格式的方法
  12. HIMSS 对EHR的定义
  13. win7 安装ss
  14. webgame《天龙诀》完整网页游戏源码
  15. 计算机考研作息时间表,2016考研人:牛人的考研作息时间表
  16. 3D阴影效果css3按钮代码
  17. 这6款APP和游戏,是苹果选出的2019年年度最佳
  18. easyui的datagrid可编辑框小功能实例
  19. BAT、华为、头条等各大互联网公司职级、薪资、股权大揭秘
  20. 大数据之Linux篇(一)

热门文章

  1. display flex
  2. Java (1.7) could not be located. OPatch cannot proceed! OPatch returns with error code = 1
  3. 流媒体传输协议之 RTP (上篇)
  4. SYN Cookies 技术
  5. DataGrip 2022,DataGrip 功能
  6. SLAM本质剖析-G2O
  7. java 狗带风波_养狗风波
  8. 思科路由器-配置RIPv2
  9. Python中%s、%d、%f意义及用法详解
  10. 十六进制转十进制(包含十转二)(C语言版)(未完全AC)