1 //最后在主类中分别求解三角形和等边三角形的面积和周长 2 //(注:在三角形和等边三角形的构造方法中添加三角形和等边三角形构成条件的判断,为flag赋值)。 5 import java.util.*; 6 public class p_12 { 7 public static void main(String[] args) 8 { 9 10 // while(3>0){ 11 System.out.println("请分别输入三角形的三条边:"); 12 try (Scanner p = new Scanner(System.in)) { 13 double a=p.nextDouble(); 14 double b=p.nextDouble(); 15 double c=p.nextDouble(); 16 Trangle_two triangle=new Trangle_two(a, b, c); 17 equilateral_triangle s1=new equilateral_triangle(a, b, c); 18 if(triangle.flag) 19 { 20 System.out.println("-------------------"); 21 System.out.println("三角形的面积为: "+triangle.getArea()); 22 System.out.println("三角形的周长为: "+triangle.getGirth()); 23 } 24 if(equilateral_triangle.flag2) 25 { 26 System.out.println("-------------------"); 27 s1.show(); 28 System.out.println("-------------------"); 29 } 30 else { 31 System.out.println("-------------------"); 32 } 33 34 } 35 } 36 } 37 //}
//题目:编写一个三角形类,定义六个成员变量,包括三边(a、b、c)、面积(area)、周长(girth)和三角形构成标志(flag), //再定义构造方法、求面积和求周长的方法。 //创建该类的子类——等边三角形类,定义一个成员变量h,表示高, //再定义构造方法、一个求高的方法并重写求面积的方法。 //最后在主类中分别求解三角形和等边三角形的面积和周长 //(注:在三角形和等边三角形的构造方法中添加三角形和等边三角形构成条件的判断,为flag赋值)。 public class Trangle_two { public double a,b,c; public double area; double girth; public boolean flag;//true false public Trangle_two(double a,double b,double c){ if(a+b>c&&a+c>b&&b+c>a){ flag=true; this.a=a; this.b=b; this.c=c; System.out.println("-------------------"); System.out.println("三角形!"); } else { flag=false; System.out.println("对不起,您输入的非三角形!"); } } double getArea() { double p=1/2.0*getGirth(); area=Math.sqrt(p*(p-a)*(p-b)*(p-c)); return area; } double getGirth() { girth=a+b+c; return girth; } }
//创建该类的子类——等边三角形类,定义一个成员变量h,表示高, //再定义构造方法、一个求高的方法并重写求面积的方法。 class equilateral_triangle extends Trangle_two{ public equilateral_triangle(double a, double b, double c) { super(a, b, c); super.getArea(); if(a+b>c&&a+c>b&&b+c>a&&a==b&&b==c&&c==a){ flag2=true; System.out.println("等边三角形!"); } else { flag2=false; System.out.println("对不起,你输入的非等边三角形!"); } } double h; double area_2; double girth_2; public static boolean flag2;//true false public double high(double h){ this.h=h; return h; } double getH(){ h=area*2/a; return h; } double getArea_2() { area_2=(a*h)/2; return area_2; } double getGirth_2() { girth_2=a+b+c; return girth; } public void show() { System.out.println("等边三角形的高为: "+getH()); System.out.println("等边三角形的面积为: "+getArea_2()); System.out.println("等边三角形的周长为: "+getGirth_2()); } }