【发布时间】:2015-05-07 17:18:20
【问题描述】:
几个月以来,我一直在学习 Java 课程,并且正在尝试制作一个简单版本的口袋妖怪游戏。到目前为止,一切都很顺利,但现在我遇到了麻烦。
我有我的地图,其中障碍物存储在一个数组(私有)中的一个类中,并使用 get 方法在其他类中使用该数组。 这些其他类不知何故改变了第一类中的数组。
这怎么可能?
【问题讨论】:
-
您应该共享代码,以便人们可以帮助您。
-
阅读 this,它解释了 Java 如何处理对象的传递。您可能还想复习一下指针和引用。
-
如果您使用 get() 方法提供对 Array 的访问权限,那么您将赋予其他人在拥有该数组后对其进行修改的能力。该数组是同一个对象,即它可能被定义在一个地方,但是 get() 提供了一个指向同一个数组的指针,这样任何“指向”该数组的人都可以看到对数组的更新,即使用对数组的引用。