gpt4 book ai didi

java - 在java中返回对象引用?

转载 作者:太空宇宙 更新时间:2023-11-04 10:47:00 25 4
gpt4 key购买 nike

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

private Room currentRoom;

和访问器方法:

public void getCurrentRoom {
return currentRoom;
}

房间等级有:

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

我在 Game 类中的七个不同地方使用了 get 方法,但我不知道直接返回它是否违反了封装原则 - 如果是,更好的方法是什么?

谢谢。

最佳答案

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

public void getCurrentRoom {
return currentRoom;
}

是否破坏了封装原则?

没有。

封装原理:

Encapsulation helps to create code that is loosely coupled. Because the details are hidden, it reduces the ability of other objects to directly modify an object's state and behavior.

  • 由于您的 getter 调用者不知道当前房间是如何设置的,它已将其实现隐藏在幕后。
  • 您设置当前房间的函数必须是私有(private)才能使用隐藏实现

来源:

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

关于java - 在java中返回对象引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48291324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com