为了账号安全,请及时绑定邮箱和手机立即绑定

如何在不使用构建器、静态构造函数或抛出异常的情况下创建一个包含两个永远不相等的整数的构造函数?

如何在不使用构建器、静态构造函数或抛出异常的情况下创建一个包含两个永远不相等的整数的构造函数?

缥缈止盈 2023-03-09 15:40:51
我有一种奇怪的感觉,即当构造函数编写不正确时,代码开始变得更加复杂。最近,我一直在尝试简化并坚持较低级别的 oop 原则,以便代码不会长成复杂的蜘蛛网。https://softwareengineering.stackexchange.com/questions/181850/are-exceptions-an-oop-concept我问的问题可能是不可能的。public class Foo{    private int x;    private int y;    public Foo(int x, int y)    {        this.x = x;        this.y = y;    }}总是这样---->foo.getX() != foo.getY();
查看完整描述

1 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

你根本做不到。


保证两个整数不相等的唯一方法是只接受一个整数并以保证不等式的方式从中导出第二个整数,例如加一。


    public Foo(int x, int y)

    {

        this.x = x;

        this.y = x + 1; // guaranteed not to be equal to x.

    }

但是,如果您需要接受两个值(例如,因为您需要比只分开一个值更大的灵活性),唯一合理的做法是在它们相等时抛出异常。


查看完整回答
反对 回复 2023-03-09
  • 1 回答
  • 0 关注
  • 81 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信