Java 这是设置包容性比例的正确方法吗?

Java 这是设置包容性比例的正确方法吗?,java,Java,抱歉,这是我的第一篇帖子,可能是模糊的,也可能不是。希望我能提供足够的信息。因此: 当然,我想从我认识的用户那里取一个整数(int),但我希望它是从3到5的范围内。 我这样做对吗 public Number(int enteranumber) { enteranumber = 3; } 这是否意味着如果用户尝试输入小于3的数字,则该字段将自动设置为3。当用户输入大于3的值时,enteranumber的值将更改为用户输入的任何值。 我认为这需要一个if语句,但我认为在构造函数中使用它是不正确

抱歉,这是我的第一篇帖子,可能是模糊的,也可能不是。希望我能提供足够的信息。因此: 当然,我想从我认识的用户那里取一个整数(int),但我希望它是从3到5的范围内。 我这样做对吗

public Number(int enteranumber)
{
  enteranumber = 3;
}
这是否意味着如果用户尝试输入小于3的数字,则该字段将自动设置为3。当用户输入大于3的值时,enteranumber的值将更改为用户输入的任何值。 我认为这需要一个if语句,但我认为在构造函数中使用它是不正确的。不管怎么说,我就是这么被告知的
非常感谢您的帮助。

您提供的当前代码片段将在实例化
新编号()
对象时将
enteranumber
的值改写为3。无论在该参数中传递了什么,即
新的MyNumber(69)
,构造函数都会立即覆盖传递的参数,即69基本上是3

如果这是您想要做的,那么在构造函数中完成就可以了。您希望在实例化对象时运行逻辑,还是在不同的时间运行逻辑?如果是前者,那么在构造函数中就可以了。下面是你将如何做到这一点

/**
 * Primary class
 */
class MyMainClass
{
    public static void main(String[] args)
    {
        MyNumber number = new MyNumber(69);
        System.out.print(number.getEnterANumber()); // Output will be 5 in this scenario
    }
}

/**
 * Number POJO
 */
class MyNumber
{
    private int enteranumber_;

    public Number(int enteranumber) 
    {
        // Sets the value
        enteranumber_ = enteranumber;

        // Checks if the value is on the wrong side of 3
        if(enteranumber_ < 3)
        {
            // If it is, then sets the number to 3
            setEnterANumber(3);
        {

        // If you want the number to definitely be 3 - 5 inclusive
        else if(enteranumber_ > 5)
        {
            setEnterANumber(5);
        }
    }    

    // Modifier
    private static void setEnterANumber(int enteranumber)
    {
        enteranumber_ = enteranumber;
    {

    // Accessor
    public int getEnterANumber()
    {
        return enteranumber_;
    }    
}
/**
*小学
*/
类MyMain类
{
公共静态void main(字符串[]args)
{
MyNumber=新的MyNumber(69);
System.out.print(number.getEnterANumber());//在这种情况下,输出将为5
}
}
/**
*编号POJO
*/
类别MyNumber
{
私人国际企业号;
公共号码(int enteranumber)
{
//设置值
enteranumber=enteranumber;
//检查值是否位于3的错误一侧
如果(输入数量<3)
{
//如果是,则将数字设置为3
setEnterANumber(3);
{
//如果你想要的数字肯定是3-5包括在内
否则,如果(输入编号>5)
{
setEnterANumber(5);
}
}    
//修饰语
私有静态无效setEnterANumber(int enteranumber)
{
enteranumber=enteranumber;
{
//存取器
public int getEnterANumber()
{
返回enteranumber;
}    
}

如果传递的值为0、1、2、6、7、8,

则此
if else
块将更改该值的唯一时间是,当出现
新数字()
对象被实例化。无论在该参数中传递了什么,即
新的MyNumber(69)
,构造函数都会立即覆盖传递的参数,69基本上是3

如果你想在构造函数中执行,那么在构造函数中执行就可以了。你想在实例化对象时运行逻辑,还是在不同的时间运行逻辑?如果是在构造函数中执行,那么在构造函数中执行就可以了。下面是你的操作方法

/**
 * Primary class
 */
class MyMainClass
{
    public static void main(String[] args)
    {
        MyNumber number = new MyNumber(69);
        System.out.print(number.getEnterANumber()); // Output will be 5 in this scenario
    }
}

/**
 * Number POJO
 */
class MyNumber
{
    private int enteranumber_;

    public Number(int enteranumber) 
    {
        // Sets the value
        enteranumber_ = enteranumber;

        // Checks if the value is on the wrong side of 3
        if(enteranumber_ < 3)
        {
            // If it is, then sets the number to 3
            setEnterANumber(3);
        {

        // If you want the number to definitely be 3 - 5 inclusive
        else if(enteranumber_ > 5)
        {
            setEnterANumber(5);
        }
    }    

    // Modifier
    private static void setEnterANumber(int enteranumber)
    {
        enteranumber_ = enteranumber;
    {

    // Accessor
    public int getEnterANumber()
    {
        return enteranumber_;
    }    
}
/**
*小学
*/
类MyMain类
{
公共静态void main(字符串[]args)
{
MyNumber=新的MyNumber(69);
System.out.print(number.getEnterANumber());//在这种情况下,输出将为5
}
}
/**
*编号POJO
*/
类别MyNumber
{
私人国际企业号;
公共号码(int enteranumber)
{
//设置值
enteranumber=enteranumber;
//检查值是否位于3的错误一侧
如果(输入数量<3)
{
//如果是,则将数字设置为3
setEnterANumber(3);
{
//如果你想要的数字肯定是3-5包括在内
否则,如果(输入编号>5)
{
setEnterANumber(5);
}
}    
//修饰语
私有静态无效setEnterANumber(int enteranumber)
{
enteranumber=enteranumber;
{
//存取器
public int getEnterANumber()
{
返回enteranumber;
}    
}

if-else
块将更改值的唯一时间是,如果传递的值为0、1、2、6、7、8,

则if语句可以在调用构造函数之前,并且是您指定的条件,即
if(number<3 | number>5){number=//任何默认值}number num=new number(number)
请不要将您的类命名为与核心Java类相同的名称,这只会导致混淆。我认为最好的做法是使用一个约束
number
的setter。这样,您可以调用
setNumber(enteranumber);
它的if语句为
if(number<3 | number>5){this.number=defaultNumHere;}else{this.number=number;}
。这样,每次调用
setNumber
方法时,都可以保证它是您想要的值范围。if语句可以在调用构造函数之前,并且是您指定的条件,即
if(number<3 | | number>5){number=//无论默认值是什么}number num=new number(number);
请不要将您的类命名为与核心Java类相同的名称,这只会导致混淆。我认为最好的做法是使用一个对
number
有约束的setter。这样您就可以调用
setNumber(enteranumber)
的if语句为
if(number<3 | | number>5){this.number=defaultNumHere;}else{this.number=number;}
。这样一来,每次调用
setNumber
方法时,您都可以保证它是您想要的值范围。非常感谢您的回答。这很有帮助。很抱歉,出于好奇,您只需再问一个问题,因为您对答案解释得很好。当我们说一个从“4到6”的数字时inclusive这意味着if语句正确吗?scale语句实际上与if语句或一般编程无关。