可以从Java中的其他类访问私有变量

时间:2010-06-10 04:30:44

标签: java

如果我想创建一个将人员添加到List的表单,我如何从另一个类访问该List?我在哪里定义该List,以便其他类可以访问成员,大小等?例如,如果我的Class Foo具有我的表单的GUI,以及用于向List添加和删除人员的按钮,那么将List声明为Class Foo的私有实例变量是有意义的。但是,如果我有另一个类,Class Bar,它如何获取当前在List中的值来更新其他一些图形组件?或者这是一般的声明List的错误地方?感谢。

4 个答案:

答案 0 :(得分:2)

其他课程不应该触及列表。他们应该查询Foo以获取有关List的信息,此时Foo可以与其私人List进行通信。

答案 1 :(得分:1)

正如我在my answer to your previous question中所说,我不认为数据列表属于gui组件。我认为你应该有一个应用程序核心,如果你想要一个服务,你可以使用gui组件,而不需要耦合这两个。

这样就可以创建Web客户端,命令行客户端,SWT客户端等,而无需更改核心应用程序代码。您只需编写一个新的GUI并在那里注入服务。 GUI应该可以访问服务但不能访问服务。

答案 2 :(得分:0)

你不应该让他们直接访问私有变量(实际上外部类甚至都看不到它)。

要提供/修改列表信息,Foo类应该具有与私有列表交互的方法。例如,您可以使用一个名为getSize()的方法来返回列表的大小。

答案 3 :(得分:0)

在最简单的情况下使用getter函数:

List getList () { return list; }

然后其他对象可以直接在列表上操作。要更加面向对象,请将list-access方法包装在对象中,并且永远不要直接返回列表对象,例如:

Object getItemFromList (int i) { return list.get(i); }