【发布时间】:2015-01-17 11:07:36
【问题描述】:
我有两个类 - Chatroom 和 User。
Chatroom 具有从Chatrooms 数组列表中删除指定用户的功能。
public void removeUser(User u)
{
if(userlist.contains(u)){
userlist.remove(u);
}
}
在User 类中有一个名为leaveRoom 的方法。该方法将User参数转发给Chatroom实例的removeUser方法。
public void leaveRoom(final Chatroom name)
{
name.removeUser(this);
}
但是,它需要将Chatroom 类的实例名称作为参数提供给函数。使用 blueJ 从User 的实例调用方法时,我必须在窗口中输入这个。
现在我一直想知道是否有一种方法可以在Chatroom 的正确实例中调用正确的方法而不必将实例名称指定为参数?
编辑:
用户一次只能在一个聊天室中。目标是 leaveRoom() 当前聊天室,而无需指定它。
【问题讨论】:
-
我不确定问题是什么。定义事物的方式必须将
Chatroom传递给leaveRoom方法。您的另一个选择是将User传递给Chatroom的removeUser方法。 -
那么问题是如果可能的话,如何将用户所在的当前聊天室传递给 leaveRoom 方法。
标签: java class methods parameters