据说以下代码违反了OO指导原则。
public class Main {
public static String NAME = "James";
public Main() {
System.out.println("Name is: "+NAME);
}
}
public class AnotherMain() {
public AnotherMain() {
System.out.println("Print name: "+Main.NAME);
}
}
我可以猜到它可能有一个抽象类,它有一个具体的方法说print(String message),然后有Main类和AnotherMain类来扩展抽象类,然后传递它们的待打印消息进入在其父抽象类中实现的print()方法。然后在他们的构造函数中,他们将调用print(“Name is:”+ NAME)。这将保存构造函数两次调用System.out.println()。
但我仍然持怀疑态度,因为它说代码的内容违反了OO指导原则。
对此有何建议? 感谢。
答案 0 :(得分:3)
答案 1 :(得分:1)
违规是一个类不能访问另一个类的属性,或者只能通过getter访问。
但另一个OO原则是封装,通常不允许使用公共属性。
IMO,如果一个类的属性是公共的,那么从另一个类中使用它不是一个OO违规,但它是一个设计糟糕的类的标志。