Java学习(采用面向对象方式求三角形面积)

该博客介绍了如何使用面向对象的方式求解三角形面积。首先展示了传统的面向过程的求解方法,通过输入三角形的三边长计算面积。接着,采用面向对象编程思想,创建了Triangle类,包含私有属性a、b、c,并提供了构造方法、getter和setter,以及计算面积的getArea()方法。通过创建Triangle对象并调用其方法,实现了更具面向对象特性的三角形面积计算。
摘要由CSDN通过智能技术生成

采用面向对象方式求三角形面积

一. 采用面向过程的思路:

定义一个计算三角形面积的函数calcuateTriangleArea(double a, double b, double c),输入a、b、c,把输入的a、b、c作为参数传入calcuateTriangleArea()函数,得到计算结果。

代码示例如下所示:
package p02.t01;
import java.util.Scanner;

/**

功能

lcc

日期:2022年06月02日
*/
public class CalculateTrigngleArea {
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();


 s = getTriangleArea(a, b, c);

 if (s != -1) {
     System.out.println("s = " + s);
 } else {
     System.out.println("提示:构不成三角形!");
 }
}
private static double getTriangleArea(double a, double b, double c) {
double s, p;

 // 判断能否构成三角形
 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)); // sqrt: square root
 } else {
     s = -1;
 }

 return s;
}
}
运行结果如下图所示:

请添加图片描述

请添加图片描述

二. 采用面向对象思路

1、创建Triangle类,包含a、b、c私有属性,提供无参与有参构造方法,提供getters和setters,重写toString()方法,提供getArea()方法;创建TestTriangle类,创建Triangle对象,设置对象属性a、b、c,调用对象方法,计算出三角形面积
2、创建net.huawei.p03.t01包,然后在包里创建Triangle类
3.定义三个缺省权限的双精度属性a、b、c,定义计算三角形面积的方法getArea(),返回值是双精度
请添加图片描述

代码如下所示:
package p02.t01;

/**

功能

lcc

日期:2022年06月02日
*/
public class Triangle {
double a, b, c;

/**

@return 三角形面积
*/
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;
}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,让我来回答你的问题。即使我没有办法确定你是谁或者你的具体要求,我还是可以为你提供一个Java面向对象的解决方案。 首先,我们需要定义一个Shape类作为基类,然后在其上派生三角形,圆和矩形的子类。每个子类都有自己的方法来计算面积和周长,这些方法将在其父类Shape上进行实现。 以下是样例代码: ``` abstract class Shape { abstract double getArea(); abstract double getPerimeter(); } class Triangle extends Shape { double base; double height; double side1; double side2; double side3; public Triangle(double base, double height, double side1, double side2, double side3) { this.base = base; this.height = height; this.side1 = side1; this.side2 = side2; this.side3 = side3; } public double getArea() { return 0.5 * base * height; } public double getPerimeter() { return side1 + side2 + side3; } } class Circle extends Shape { double radius; public Circle(double radius) { this.radius = radius; } public double getArea() { return Math.PI * radius * radius; } public double getPerimeter() { return 2 * Math.PI * radius; } } class Rectangle extends Shape { double width; double height; public Rectangle(double width, double height) { this.width = width; this.height = height; } public double getArea() { return width * height; } public double getPerimeter() { return 2 * (width + height); } } public class Main { public static void main(String[] args) { Triangle triangle = new Triangle(5, 3, 4, 3, 5); System.out.println("Triangle area: " + triangle.getArea()); System.out.println("Triangle perimiter: " + triangle.getPerimeter()); Circle circle = new Circle(3); System.out.println("Circle area: " + circle.getArea()); System.out.println("Circle perimiter: " + circle.getPerimeter()); Rectangle rectangle = new Rectangle(5, 4); System.out.println("Rectangle area: " + rectangle.getArea()); System.out.println("Rectangle perimiter: " + rectangle.getPerimeter()); } } ``` 在这段代码,我们定义了Shape抽象类和其子类Triangle,Circle和Rectangle。 一个Shape只是一个抽象概念,不能实际被创建。 Shape子类都重写了getArea()和getPerimeter()方法。 在main方法,我们创建了一个Triangle对象,一个Circle对象和一个Rectangle对象,并调用它们各自的getArea()和getPerimeter()方法来显示它们的面积和周长。 提醒:记得在你自己的代码对错误进行处理,确保输入有合理的值以计算正确的结果。加油!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值