我在考虑这种做法有多糟糕,当您这样做时:
SomeConstructor(){
Scanner sc = new Scanner(System.in);
a = sc.nextInt();
}
java允许我这样做,但是我从未见过有人写这样的代码,所以问题是可以创建这样的问题,如果是不好的做法,请向我解释一下。
简单:真的糟糕。
构造函数的主要目的当然是对新创建的对象进行INTIAL。但是:您非常喜欢传递值。
含义:当您从标准中读取构造函数时,这几乎无法轻松单元测试相应的类!
您想遵循单一责任原则。喜欢:一个班级负责收集输入。然后,另一个类别负责处理该输入。您的方法将导致首先获取价值的课程,然后与它们合作。如所说:您想避免。