import java.lang.Math;
abstract class Geometric{
private String color;
private Boolean filled;
public Geometric(){}
public Geometric(String color,Boolean filled){
this.color = color;
this.filled = filled;
}
public abstract double getArea();
public abstract double getPerimeter();
@Override
public String toString(){
return "Geometric{" +
"color=‘" + color + '\'' +
",filled=" + filled +
'}';
}
}
public class Circle extends Geometric{
private double PI = 3.14;
private double radius;
public Circle(){}
public Circle(double radius){
this.radius = radius;
}
public double getRadius(){
return radius;
}
public void setRadius(){
this.radius = radius;
}
public double getArea(){
return PI * radius * radius ;
}
public double getPerimeter(){
return PI*radius*2;
}
@Override
public String toString(){
return "Circle{" +
"PI=" + PI +
", radius=" + radius +
'}' ;
}
}
public class Rectangle extends Geometric{
private double side1,side2;
public Rectangle(){}
public Rectangle(double side1 , double side2){
this.side1 = side1;
this.side2 = side2;
}
public double getSide1(){
return side1;
}
public void setSide1(double side1){
this.side1 = side1;
}
public double getSide2(){
return side2;
}
public void setSide2(double side2){
this.side2 = side2;
}
public double getArea(){
return side1*side2;
}
public double getPerimeter(){
return (side1 + side2)*2;
}
@Override
public String toString(){
return "Rectangle{" +
"side1=" + side1 +
",side2=" +side2 +
'}';
}
}
public class Triangle extends Geometric{
private double side1,side2,side3;
public Triangle(){}
public Triangle(double side1 ,double side2,double side3){
this.side1 = side1;
this.side2 = side2;
this.side3 = side3;
}
public double getSide1(){
return side1;
}
public void setSide1(){
this.side1 = side1;
}
public double getSide2(){
return side2;
}
public void setSide2(){
this.side2 = side2;
}
public double getSide3(){
return side3;
}
public void setSide3(){
this.side3 = side3;
}
public double getArea(){
double p = (side1 + side2+side3)/2;
return Math.sqrt(p*(p-side1) * (p-side2) * (p-side3));
}
public double getPerimeter(){
return side1 + side2 + side3;
}
public Boolean isTriangle(){
if( side1+side2 <= side3 ||side1+side3 <= side2 || side3+side2 <= side1 ){
return false;
}
else{
return true;
}
}
@Override
public String toString(){
return "Triangle{" +
"side1=" + side1 +
",side2=" +side2 +
",side3=" +side3 +
'}';
}
}
public class Test{
public static void main(String[] args){
Circle c = new Circle(2.5);
Rectangle r = new Rectangle(5.2,2.5);
Triangle t = new Triangle(3.8,4.8,5.8);
System.out.println("测试半径为2.5的Circle:");
System.out.println("Circle的面积:"+ c.getArea());
System.out.println("Circle的周长:" + c.getPerimeter());
System.out.println("测试半径为5.2和2.5的Rectangle:");
System.out.println("Rectangle的面积:" + r.getArea());
System.out.println("Rectangle的周长:" + r.getPerimeter());
System.out.println("测试半径为3.8,4.8,5.8的Triangle:");
if (t.isTriangle()){
System.out.println("边长合法,能构成三角形");
System.out.println("的Triangle的面积:" + t.getArea());
System.out.println("的Triangle的周长:" + t.getPerimeter());
}
else{
System.out.println("边长不合法,不能构成三角形");
}
}
}