对不起,这是我的第一篇文章,它可能含糊不清,可能不是。希望我能提供足够的信息。所以: 我想从我认识的用户(int)中取一个整数,但我希望它从3到5的范围内。 我是否正确地执行以下操作:
public Number(int enteranumber)
{
enteranumber = 3;
}
这是否意味着如果用户尝试输入小于3的数字,则该字段将自动设置为3.当用户输入大于3时,enteranumber的值将更改为用户放置的任何值。 我认为这需要一个if语句,但我不认为在构造函数中使用它是正确的。这就是我被告知的事情 非常感谢您的帮助。
答案 0 :(得分:0)
当您实例化enteranumber
对象时,您提供的当前代码段将覆盖new Number()
的值为3。无论在该参数中传递什么,即new 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_;
}
}
此if else
块将更改值的唯一时间是传递的值是0,1,2,6,7,8 ......