题目:

(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();
		}
	}

}
Logo

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

更多推荐