任务1、采用面向对象思维求三角形面积
- 采用面向过程的思路:定义一个计算三角形面积的函数calcuate riangleArea(double a, double b, double c)
- 创建Triangle类,包含a、b、c私有属性,提供无参与有参构造方法,提供getters和setters,重写toString()方法,提供getArea()方法
- 创建TestXriangle类,实例化Xriangle对象,设置对象属性a、b、c,调用对象方法,计算出三角形面积。
一、编成实现
- 创建TestXriangle类,实例化Xriangle对象,设置对象属性a、b、c,调用对象方法,计算出三角形面积
- 三边关系定理:(1)任意两边之和大于第三边
(2)如果能构成三角形,利用海伦公式来计算 - 三边a,b,c半周长p = (a+b+c)/ 2
1、编写代码
package next.X;
import com.sun.tools.javac.Main;
import java.util.Scanner;
/**
* 功能:三角形类
* 作者:向兴桥
* 日期:2022-4-21
*/
public class Xriangle {
//缺省权限属性
private double a,b,c;
public Xriangle() {
System.out.println("无参构造方法被调用了");
}
// 构造方法
public Xriangle(double a,double b,double c){
this.a= a;
this.b= b;
this.c= c;
System.out.println("有参构造方法被调用了");
}
public double getA() {
return a;
}
public void setA(double a){
if(a > 0){
this.a = a;
}else {
System.out.println("边长不能为负数!");
}
}
public double getB() {
return b;
}
public void setB(double b) {
this.b = b;
}
public double getC() {
return c;
}
public void setC(double c) {
this.c = c;
}
@Override
public String toString() {
return "Xriangle{" +
"a=" + a +
", b=" + b +
", c=" + c +
'}';
}
public double getArea() {
double s = 0, 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;
}
}
package next.X;
import java.text.Format;
import java.util.Scanner;
/**
* 功能:测试三角形类
* 作者:向兴桥
* 日期:2022-4-21
*/
public class Testxriangle {
public static void main(String[] args) {
double a,b,c,s;
Scanner sc = new Scanner(System.in);
//利用无参构造方法创建三角形对象
Xriangle xriangle = new Xriangle();
System.out.print("a = ");
a = sc.nextDouble();
System.out.print("b = ");
b = sc.nextDouble();
System.out.print("c = ");
c = sc.nextDouble();
// 设置三角形对象属性
xriangle.setA(a);
xriangle.setB(b);
xriangle.setC(c);
// 调用三角形对象方法
s = xriangle.getArea();
//打印三角形对象
System.out.println(xriangle);
// 判断是否构成三角形
if(s != -1){
System.out.println(String.format("s = "+"%.2f",s));
}else {
System.out.println("提示:构不成三角形!");
}
}
}
2、运行程序,查看结果