Java学习之异常(作业 三角类)

题目

自定义类Sanj,其中有成员 x,y,z,作为三边长,构造方法Sanj(x,y,z)分别 给x,y,z赋值,方法求面积getArea和显示三角形信息(三个边长)showInfo,
* 这2个方法中当三条边不能构成一个三角形时要抛出自定义异常SjException,
* 否则显示正确信息。在另外一个类中的主方法中构造一个Sanj对象(三边为命令行输入的三个整数),显示三角形信息和面积,要求捕获异常。

 Sanj类

package com.sy.day03.work.Exception;

/**
 * @Author: ShenYang
 * @Date: 2023-06-14-20:13
 * @Description: TODO
 * <p>
 * comment:
 * <p>
 * 自定义类Sanj,其中有成员 x,y,z,作为三边长,构造方法Sanj(x,y,z)分别 给x,y,z赋值,方法求面积getArea和显示三角形信息(三个边长)showInfo,
 * * 这2个方法中当三条边不能构成一个三角形时要抛出自定义异常SjException,
 * * 否则显示正确信息。
 **/

public class Sanj {
    private int x, y, z;

    Double getArea(){
        try {
            if (x + y < z || x + z < y || z + y < x) {
                throw new SjException("不能构成三角形");
            }
        }catch (SjException e) {
            e.printStackTrace();
        }
        double p =(x+y+z)/2.0;
        double D = p*(p-x)*(p-y)*(p-z);
        return Math.sqrt(D);
    }

    void showInfo(){
        try {
            if (x + y < z || x + z < y || z + y < x) {
                throw new SjException("不能构成三角形");
            } else {
                System.out.println("三角形三条边 : " + x + ", " + y + ", " + z);
            }
        }catch (SjException e) {
            e.printStackTrace();
        }
    }
    public Sanj(int x, int y, int z) {
        this.x = x;
        this.y = y;
        this.z = z;
    }
}

 Main类

package com.sy.day03.work.Exception;

/**
 * @Author: ShenYang
 * @Date: 2023-06-14-20:13
 * @Description: TODO
 * <p>
 * comment:
 *
 * 自定义类Sanj,其中有成员 x,y,z,作为三边长,构造方法Sanj(x,y,z)分别 给x,y,z赋值,方法求面积getArea和显示三角形信息(三个边长)showInfo,
 * 这2个方法中当三条边不能构成一个三角形时要抛出自定义异常SjException,
 * 否则显示正确信息。在另外一个类中的主方法中构造一个Sanj对象(三边为命令行输入的三个整数),显示三角形信息和面积,要求捕获异常。
 **/

public class Sanj_Main {
    public static void main(String[] args) {
        Sanj sanj = new Sanj(2, 7, 2);
        sanj.showInfo();
        System.out.println(sanj.getArea());
    }
}

结果:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值