在java中返回对象引用?

时间:2018-01-16 23:15:17

标签: java

所以我准备考试并试图弄清楚这一点,无论是否打破了封装。不知道问题是否有意义,但我正在开发一款拥有大量服务器类和客户端类游戏的游戏。 在我的Player类中,我有这个字段

private Room currentRoom;

和一个存取方法:

public void getCurrentRoom {
    return currentRoom;
}

会议室有:

private String Name;
private ArrayList<Item> items;
private HashMap<String, Room> exists;

我在Game类中使用了get方法七个不同的地方,但是我不知道它是否通过直接返回它来破坏封装原则 - 如果确实如此,那么更好的方法是什么呢? ?

谢谢。

1 个答案:

答案 0 :(得分:0)

首先,此代码将无法编译,因为它需要返回类型为Room的实例

public void getCurrentRoom {
    return currentRoom;
}

它是否违反了封装原则?

封装原则:

  

封装有助于创建松散耦合的代码。因为   细节被隐藏,它降低了其他对象的能力   直接修改对象的状态和行为。

  • 由于你的getter来电者不知道当前房间的设置方式, 它隐藏了幕后的实现。
  • 您按顺序设置当前房间的功能需要private 隐藏实施

来源:

https://gamedevelopment.tutsplus.com/tutorials/quick-tip-the-oop-principle-of-encapsulation--gamedev-2187