问题描述:
定义一个描述三角形的类,名字为Triangle,属性有:
private double a, b, c;
方法有:
double getPerimeter(),计算三角形的周长
double getArea(),计算三角形的面积
public void setSide(double x, double y, double z),对属性a、b、c分别赋值为x、y、z
另外,有构造方法:
public Triangle(double a, double b, double c),如果a、b、c不能构成一个三角形,则a、b、c都赋值为0【输入形式】三个数,表示三角形的三边长度。
【输出形式】三角形的周长、面积、以及三边的长度。
【样例输入1】
3
4
5【样例输出1】
perimeter=12.0
area=6.0
a=3.0,b=4.0,c=5.0【样例输入2】
1
2
3【样例输出2】
perimeter=0.0
area=0.0
a=0.0,b=0.0,c=0.0
package triangle;
import java.util.Scanner;
public class Triangle {
private double a,b,c;
//构造函数
public Triangle(double a,double b,double c){
if(a+b>c&&a+c>b&&b+c>a){
setA(a);
setB(b);
setC(c);
}
else{
setA(0.0);
setB(0.0);
setC(0.0);
}
}
public void setSide(double x,double y,double z){
setA(x);
setB(y);
setC(z);
}
//求周长
public double getPerimeter(){
return this.a+this.b+this.c;
}
//求面积(海伦公式)
public double getArea(){
double p = this.getPerimeter()/2; //不加this也可以
return Math.sqrt(p*(p-a)*(p-b)*(p-c));
}
//当主函数要用到类中的单独变量时,要用get和set
public void setA(double a) {
this.a = a; //将对象传进来的真值给类中的私有变量
}
public void setB(double b){
this.b = b;
}
public void setC(double c) {
this.c = c;
}
public double getA(){
return this.a;
}
public double getB(){
return this.b;
}
public double getC(){
return this.c;
}
public static void main(String[] args){
Scanner in = new Scanner(System.in);
double a = in.nextDouble();
double b = in.nextDouble();
double c = in.nextDouble();
Triangle san = new Triangle(a,b,c); //将对象真值带入构造函数
System.out.println("perimeter="+san.getPerimeter());
System.out.println("area="+san.getArea());
System.out.println("a="+san.getA()+","+"b="+san.getB()+","+"c="+san.getC());
in.close();
}
}