对象中的Java对象

时间:2014-01-18 16:13:40

标签: java

我想在单独的java文件中保留尽可能多的东西,以便于代码可读性和调试问题。

我有一个名为 Actor 的java类。 Actor类被设计为一个包含所有Actor的对象(如在从Actor类信息创建的Object中,但也可用于其他东西,如怪物等。

另一个名为状态的课程。该类处理所有状态问题,并将修改属性到Actor(例如:如果它们被击晕)。

我希望这个Status Class成为Actor的一部分,而不需要嵌套类。这可能吗?

2 个答案:

答案 0 :(得分:3)

你是对的 - 你不应该为此嵌套内部类或继承。用组合可以很容易地解决这个问题:给Actor类一个带有getter和setter方法的Status字段。

public abstract class Actor {
  private Status status;

  public Actor() {
    status = new Status(); // default empty status
  }


  public Actor(Status status) {
    this.status = status;
  }

  public void setStatus(Status status) {
    this.status = status;
  }

  public Status getStatus() {
    return status;
  }
}

修改

澄清:我推荐使用继承的解决方案,因为许多类将继承Actor,但是不会通过让Actor扩展Status或Status扩展Actor来试图误用继承。

答案 1 :(得分:2)

class Actor{

   private Status mStatus;

   public void stun(){}
}

作文将帮助你