时间:2011-06-16 16:06:36

标签: java oop

据说以下代码违反了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指导原则。

对此有何建议? 感谢。

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:1)

违规是一个类不能访问另一个类的属性,或者只能通过getter访问。

但另一个OO原则是封装,通常不允许使用公共属性。

IMO,如果一个类的属性是公共的,那么从另一个类中使用它不是一个OO违规,但它是一个设计糟糕的类的标志。