等待构造函数内的用户输入

时间:2018-04-27 06:33:54

标签: java constructor user-input

当你这样做的时候,我在考虑这种做法有多糟糕:

SomeConstructor(){
 Scanner sc = new Scanner(System.in);
 a = sc.nextInt();
}

Java允许我这样做,但我从未见过有人写过这样的代码,所以问题是这样的代码可以创建什么问题,如果这是不好的做法,请解释为什么请。

1 个答案:

答案 0 :(得分:3)

简单地说:真的糟糕。

构造函数的主要目的当然是初始化新创建的对象。但是:你非常喜欢传入值。

含义:当你从标准中读取构造函数时,这使得几乎不可能轻松地对相应的类进行单元测试!

您希望遵循单一责任原则。喜欢:一个班负责收集输入。 然后另一个类负责处理该输入。您的方法将导致一个类首先获取值然后使用它们。如上所述:你想避免这种情况。