This post was updated 734 days ago and some of the ideas may be out of date.
三角形类Triangle的编写和测试。
具体要求:
- 三角类有3个私有属性,三个边(a,b,c);
- 编写三角形类的无参构造方法和包含所有属性的构造方法;
- 编写所有属性的Getters和Setters方法;
- 编写求三角形面积的方法,public double getArea();
- 编写求三角形周长的方法,public double getPrimeter();
- 编写Main测试类,分别调用两个构造方法生成两个三角形,然后设置相关参数,输出三角形面积和周长。
import java.util.Scanner;
public class Triangle {
private double a,b,c;
public Triangle(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}
public Triangle() {
}
public double getA() {
return a;
}
public void setA(double a) {
this.a = a;
}
public double getB() {
return b;
}
public void setB(int b) {
this.b = b;
}
public double getC() {
return c;
}
public void setC(int c) {
this.c = c;
}
public double getArea() {// 不需要参数,直接访问属性
double s, p;
//判断a、b、c能否构成三角形
if (a + b > c && b + c > a && c + a > b) {
p = (a + b + c) / 2;
s = Math.sqrt(p * (p - a) * (p - b) * (p - c));
}else {
s = -1;
}
return s;
}
public double getPrimeter(){//周长
return a+b+c;
}
}
class Main{
public static void main(String[] args) {
double a, b, c, s;
Scanner sc = new Scanner(System.in);
System.out.print("a = ");
a = sc.nextDouble();
System.out.print("b = ");
b = sc.nextDouble();
System.out.print("c = ");
c = sc.nextDouble();
//利用构造方法创建三角形对象
Triangle triangle = new Triangle(a,b,c);
//调用三角形对象方法
s = triangle.getArea();
//判断是否构成三角形
if (s != -1) {
System.out.println("area =" + s);
System.out.println("周长"+triangle.getPrimeter());
}else {
System.out.println("温馨提示:构不成三角形!");
}
// 使用无参构造
Triangle t1 = new Triangle();
t1.setA(3);
t1.setB(4);
t1.setC(5);
System.out.println("使用无参构造方法a=3 b=4 c=5");
System.out.println("area =" + t1.getArea());
System.out.println("周长"+t1.getPrimeter());
}
}

参与讨论