java创建一个描述三角形的类Triangle

时间: 2023-05-19 13:01:05 浏览: 710
可以这样实现: public class Triangle { private double a; private double b; private double c; public Triangle(double a, double b, double c) { this.a = a; this.b = b; this.c = c; } public double getA() { return a; } public double getB() { return b; } public double getC() { return c; } public double getPerimeter() { return a + b + c; } public double getArea() { double p = getPerimeter() / 2; return Math.sqrt(p * (p - a) * (p - b) * (p - c)); } }
相关问题

讲解 Java 的 Triangle(三角形)类

好的,Java 的 Triangle(三角形)类可以用于描述和计算三角形的相关属性,例如周长、面积等。以下是一个简单的 Triangle 类的代码示例: ```java public class Triangle { private double sideA; private double sideB; private double sideC; public Triangle(double a, double b, double c) { sideA = a; sideB = b; sideC = c; } public double getSideA() { return sideA; } public double getSideB() { return sideB; } public double getSideC() { return sideC; } public double getPerimeter() { return sideA + sideB + sideC; } public double getArea() { double s = getPerimeter() / 2; return Math.sqrt(s * (s - sideA) * (s - sideB) * (s - sideC)); } } ``` 在这个 Triangle 类中,我们定义了三个私有变量 sideA、sideB 和 sideC,它们分别代表三角形的三条边。我们还定义了一个构造函数,用于创建一个 Triangle 对象,并指定三条边的长度。 接下来,我们定义了三个公有方法 getSideA、getSideB 和 getSideC,用于获取三角形三条边的长度。我们还定义了两个公有方法 getPerimeter 和 getArea,用于计算三角形的周长和面积。 在 getArea 方法中,我们使用海伦公式来计算三角形的面积。具体来说,我们先计算出三角形的半周长 s,然后使用该值和三条边的长度计算出面积。需要注意的是,在使用 Math.sqrt 方法计算平方根时,需要导入 java.lang.Math 类。 使用这个 Triangle 类,我们可以很方便地计算任意三角形的周长和面积。例如,下面是一个使用 Triangle 类计算三角形面积的示例代码: ```java Triangle t = new Triangle(3, 4, 5); double area = t.getArea(); System.out.println("Triangle area: " + area); ``` 这段代码会创建一个 Triangle 对象 t,表示一条边长为 3、另一条边长为 4、第三条边长为 5 的三角形。然后,我们调用 t.getArea 方法计算三角形的面积,并将结果打印到控制台上。

用java语言,创建一个描述三角形的类Triangle,类中有三边长、面积、周长等成员变量,有带参数的构造方法,以及计算面积、计算周长和输出信息等成员方法,再创建描述圆形的类Circle,其中有半径、面积、周长等属性,有带参数的构造方法,以及计算面积、计算周长和输出信息等成员方法,在主类中测试三角形类和圆形类的使用(创建对象,计算面积、周长,输出信息)。

好的,以下是用Java语言创建描述三角形和圆形的类Triangle和Circle的代码: Triangle类: ``` public class Triangle { private double side1; private double side2; private double side3; private double area; private double perimeter; public Triangle(double s1, double s2, double s3) { side1 = s1; side2 = s2; side3 = s3; double s = (s1 + s2 + s3) / 2; area = Math.sqrt(s * (s - s1) * (s - s2) * (s - s3)); perimeter = s1 + s2 + s3; } public double getArea() { return area; } public double getPerimeter() { return perimeter; } public void printInfo() { System.out.println("Triangle with sides " + side1 + ", " + side2 + ", " + side3); System.out.println("Area: " + area); System.out.println("Perimeter: " + perimeter); } } ``` Circle类: ``` public class Circle { private double radius; private double area; private double perimeter; public Circle(double r) { radius = r; area = Math.PI * r * r; perimeter = 2 * Math.PI * r; } public double getArea() { return area; } public double getPerimeter() { return perimeter; } public void printInfo() { System.out.println("Circle with radius " + radius); System.out.println("Area: " + area); System.out.println("Perimeter: " + perimeter); } } ``` 在主类中测试Triangle和Circle类的使用: ``` public class Main { public static void main(String[] args) { Triangle t = new Triangle(3, 4, 5); t.printInfo(); Circle c = new Circle(2); c.printInfo(); } } ``` 输出结果: ``` Triangle with sides 3.0, 4.0, 5.0 Area: 6.0 Perimeter: 12.0 Circle with radius 2.0 Area: 12.566370614359172 Perimeter: 12.566370614359172 ``` 希望这个回答能够帮到你!

相关推荐

【问题描述】 1)设计一个通用类GeometricObject可以用来建模所有的几何对象。 包括成员变量: •颜色color是一个字符串,在无参构造函数中将其初始化为"white"。 •filled表示圆是否填充,为boolean类型,在无参构造方法中将其初始化为false。 2)设计一个接口Computable,该接口中包括: •常量PI=3.14,可以用于计算圆的面积。 •double getArea(); \\计算面积 •double getPerimeter(); \\计算周长 3)设计一个名为Triangle的类来扩展GeometricObject类,并实现接口Computable。该类包括: •三个名为side1、side2和side3的double成员变量表示这个三角形的三条边,它们的默认值是1.0。 •一个无参构造方法创建默认的三角形,将三角形的三条边设为默认值1.0。 •一个能创建带指定side1、side2和side3的三角形的构造方法。 4)设计一个Circle类来扩展GeometricObject,并实现接Computable。该类包括了: •一个成员变量:radius,表示圆的半径; •一个带参的构造方法用于设定圆的半径:radius; 5)设计一个类 Factory,该类中包括一个方法: Computable getComputableShapeInstance(int shape, Scanner reader); 当shape 为 1时输入圆的半径,创建一个Circle的对象, 并返回该对象的引用, 当shape 为 2时输入三角形的三条边,创建一个Triangle的对象, 并返回该对象的引用, 为了便于在作业系统中进行测试,将传入一个Scanner 对象的引用,并在该方法中使用reader输入数据。 提示:可以用下面方法按四舍五入输出两位小数: System.out.printf("%.2f", s); 6)编写一个测试程序,创建相应对象,显示相应信息,主方法程序如下: import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner reader = new Scanner(System.in); Computable shape; Factory shapeFactory = new Factory(); shape = shapeFactory.getComputableShapeInstance(1, reader); System.out.println("Circle area:" + shape.getArea()); shape = shapeFactory.getComputableShapeInstance(2, reader); System.out.println("Triangle area:" + shape.getArea()); } } 【输入出格式】:下划线为输入 3 Circle area:28.26 3 4 5 Triangle area:6.0

编写一个名为TwoDimensionalShape的抽象类,拥有属性area和circumference表示面积和周长,以及抽象方法getArea()和getCircumference(),用于获取面积和周长。 2、 编写Printable接口,包括一个抽象方法printShapeInfo,用于输出图形信息。 3、 分别编写Rectangle、Triangle、Circular三个类,用于描述矩形、三角形和圆形,要求继承于TwoDimensionalShap类,并实现Printable接口,每个图形有各自的构造方法,矩形有length和width字段表示长和宽,三角形有base、hypotenus1和hypotenus2字段表示底和两条斜边,圆形有radius字段表示半径,按几何常识实现父类中所定义的抽象方法,printShapeInfo方法要求能够输出: (1) 图形的类型(使用getClass方法) (2) 图形的基本数据(使用自定义toString方法,输出图形的字段,输出示例:宽3.0, 长4.0) 4、 编写一个名为ShapeDetector的类,拥有三个重载的detectShape方法,分别为detectShape(Rectangle r)、detectShape(Triangle t)、detectShape(Circular c),分别输出所接收到的图形的类型。 5、 编写Test类,创建一个名为Shapes的TwoDimensionalShape型数组,并创建Rectangle、Triangle、Circular的对象存储在该数组中,用foreach循环遍历该数组,使用detectShape方法输出该对象的图形类型,用printShapeInfo方法输出该对象的图形信息,然后分别用getArea和getCircumference方法输出面积及周长。

最新推荐

recommend-type

node-v0.8.10-sunos-x64.tar.gz

Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
recommend-type

【课程设计】实现的金融风控贷款违约预测python源码.zip

【课程设计】实现的金融风控贷款违约预测python源码.zip
recommend-type

node-v0.10.27-x86.msi

Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
recommend-type

课设毕设基于SSM的高校二手交易平台-LW+PPT+源码可运行.zip

课设毕设基于SSM的高校二手交易平台--LW+PPT+源码可运行
recommend-type

c++,冒险游戏,可供学习

冒险游戏,可供学习
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

SPDK_NVMF_DISCOVERY_NQN是什么 有什么作用

SPDK_NVMF_DISCOVERY_NQN 是 SPDK (Storage Performance Development Kit) 中用于查询 NVMf (Non-Volatile Memory express over Fabrics) 存储设备名称的协议。NVMf 是一种基于网络的存储协议,可用于连接远程非易失性内存存储器。 SPDK_NVMF_DISCOVERY_NQN 的作用是让存储应用程序能够通过 SPDK 查询 NVMf 存储设备的名称,以便能够访问这些存储设备。通过查询 NVMf 存储设备名称,存储应用程序可以获取必要的信息,例如存储设备的IP地址、端口号、名称等,以便能
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。