当你这样做的时候,我在考虑这种做法有多糟糕:
SomeConstructor(){
Scanner sc = new Scanner(System.in);
a = sc.nextInt();
}
Java允许我这样做,但我从未见过有人写过这样的代码,所以问题是这样的代码可以创建什么问题,如果这是不好的做法,请解释为什么请。
答案 0 :(得分:3)
简单地说:真的糟糕。
构造函数的主要目的当然是初始化新创建的对象。但是:你非常喜欢传入值。
含义:当你从标准中读取构造函数时,这使得几乎不可能轻松地对相应的类进行单元测试!
您希望遵循单一责任原则。喜欢:一个班负责收集输入。 然后另一个类负责处理该输入。您的方法将导致一个类首先获取值然后使用它们。如上所述:你想避免这种情况。