自定义类Sanj,其中有成员 x,y,z,作为三边长,
构造方法Sanj(a,b,c)分别给x,y,z赋值,
方法求面积getArea和显示三角形信息(三个边长)showInfo,
这2个方法中当三条边不能构成一个三角形时要抛出自定义异常NotSanjiaoException,否则显示正确信息。
在另外一个类中的主方法中构造一个Sanj对象(三边为命令行输入的三个整数),显示三角形信息和面积,要求捕获异常
import java.util.Scanner; import static java.lang.Math.sqrt; public class Sanj { private int x; private int y; private int z; public Sanj(int x, int y, int z) { this.x = x; this.y = y; this.z = z; } private class NotSanjiaoException extends Throwable { public NotSanjiaoException(String s) { super(s); } } public double getArea() throws NotSanjiaoException{ if(x+y<=z||x+z<=y||z+y<=x){ throw new NotSanjiaoException("无法构成三角形"); } int p=x+y+z; return sqrt(p*(p-x)*(p-y)*(p-z)); } public void showInfo(){ System.out.println("三角形的三个边长分别为:x="+x+",y="+y+",z="+z); } public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("分别输入三角形的三个边长:"); int x=scanner.nextInt(); int y=scanner.nextInt(); int z=scanner.nextInt(); Sanj s=new Sanj(x,y,z); try { System.out.println(s.getArea()); } catch (NotSanjiaoException e) { e.printStackTrace(); } s.showInfo(); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)