Java 对引用类对象(子类)和访问方法的混淆
引用一个类对象(如果它正在这样做的话)可以吗:private SomeClass SomeClass;如下图所示?它工作正常,但它会破坏封装吗?书是阅读之子,阅读是内容之子 还有,这样做可以吗?((游戏)c.getValue()).returnNameAndOs());OS类对象位于游戏类对象内 我只关心把事情做对,或者做得更好Java 对引用类对象(子类)和访问方法的混淆,java,reference,parent-child,accessor,Java,Reference,Parent Child,Accessor,引用一个类对象(如果它正在这样做的话)可以吗:private SomeClass SomeClass;如下图所示?它工作正常,但它会破坏封装吗?书是阅读之子,阅读是内容之子 还有,这样做可以吗?((游戏)c.getValue()).returnNameAndOs());OS类对象位于游戏类对象内 我只关心把事情做对,或者做得更好 public abstract class Content { Private List<Comment> Review = new ArrayLis
public abstract class Content {
Private List<Comment> Review = new ArrayList<Comment>();
private Reading reading; // is this bad practice
private Book book;
private String ID;
private String Application_Name;
private int No_of_Downloads = 0;
private double Price = 0;
// overridden
public Content(String iD, String application_Name, double price) {
super();
ID = iD;
Application_Name = application_Name;
Price = price;
}
// overridden
public Content(String iD, String application_Name) {
super();
ID = iD;
Application_Name = application_Name;
}
public void addReviews(Comment a) {
this.Review.add(a);
System.out.println(a.getusrname()+" added review on
"+this.getApplication_Name()+": "+a.getUsrComment());
}
// etc...
}
公共抽象类内容{
Private List Review=new ArrayList();
私人阅读;//这种做法不好吗
私人书籍;
私有字符串ID;
私有字符串应用程序名称;
私有int No_of_下载=0;
私人双价=0;
//凌驾
公共内容(字符串iD、字符串应用程序名称、双倍价格){
超级();
ID=ID;
应用程序名称=应用程序名称;
价格=价格;
}
//凌驾
公共内容(字符串iD、字符串应用程序名称){
超级();
ID=ID;
应用程序名称=应用程序名称;
}
公众评论(评论a){
本条。审查。添加(a);
System.out.println(a.getusrname()+“添加了对
“+this.getApplication_Name()+”:“+a.getUsrComment());
}
//等等。。。
}
如果这是一个抽象类,您不能初始化它,因此不使用构造函数
我相信“评论”列表与内容相关。它应该是私有的,并且像其他变量一样具有getter setter聚合和组合是关联的形式。在您的例子中,您引用的是另一个类,即composition。封装要求将字段和相关方法保持在同一个类中。但您可以在其他类中调用这些方法。它是一个抽象类。我刚刚更新了我的代码。内容中有两个构造函数在不同的子类中被重写(添加了实例变量)。正是这些添加的即时变量让我遇到了麻烦。有一个名为Comments(是对“reviews”的回复)的类,它有一个引用自身的ArrayList。评论方面的工作很好。