java语言程序设计与数据结构12_5
java语言程序设计与数据结构第12章第5题
·
题目:
(IllegalTriangleException异常)编程练习题11.1定义了具有三条边的Triangle类。在三角形中,任意两边之和总大于第三边,三角形类Triangle必须遵从这一规则。创建一个IllegalTri angleException类,然后修改Triangle类的构造方法,如果创建的三角形的边违反了这一规则,则抛出一个IllegalTriangleException对象。
Triangle类:
package second;
public class Triangle {
private double side1;
private double side2;
private double side3;
//构造方法
public Triangle() throws IllegalTriangleException {
this(1.0, 1.0, 1.0);
}
public Triangle(double side1, double side2, double side3) throws IllegalTriangleException {
if (side1+side2>side3 && side1+side3>side2 && side2+side3>side1) {
this.side1 = side1;
this.side2 = side2;
this.side3 = side3;
} else {
throw new IllegalTriangleException();
}
}
//数据域的访问器方法
public double getSide1() {
return side1;
}
public double getSide2() {
return side2;
}
public double getSide3() {
return side3;
}
//返回三角形面积
public double getArea() {
double d = getPerimeter()/2;
double area = Math.sqrt(d*(d-side1)*(d-side2)*(d-side3));
return area;
}
//返回周长
public double getPerimeter() {
return side1+side2+side3;
}
//返回字符串描述
public String toString() {
return "Triangle: side1: "+ side1 +" side2: "+ side2 +" side3: "+side3 +" perimeter:"+getPerimeter()+" area: "+getArea();
}
}
IllegalTriangleException类:
package second;
public class IllegalTriangleException extends Exception {
}
TriangleTest类:
package second;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
class TriangleTest {
@Test
void test() {
try {
Triangle triangle1 = new Triangle();
System.out.println(triangle1.toString());
Triangle triangle2 = new Triangle(3, 3, 3);
System.out.println(triangle2.toString());
Triangle triangle3 = new Triangle(1, 2, 7);
System.out.println(triangle3.toString());
} catch (IllegalTriangleException e) {
System.out.println("error");
//e.printStackTrace();
}
}
}

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)