关于从内部类访问和修改属性的理论

时间:2013-03-25 10:46:08

标签: java android

我有一个java(android)问题。 我有一个类(A类)及其属性,我在类A中创建了私有类(类B和C).B类和C类是AsyncTask ..我不知道这是否重要。

我可以从B和C中读取ClassA的属性,但是,如果我从B或C修改属性A会发生什么?我认为这些变化不是永久性的,这对我来说很奇怪,因为我可以访问它们......所以,如果我想要的变化是永久物,我必须从ClassB做的事情,比如,,, classA.atrributeA = atributeA ;

我不知道是不是因为我正在使用AsyncTask,或者这是正常行为。我认为我对概念存在一些问题......

谢谢

2 个答案:

答案 0 :(得分:3)

  

我认为这些变化不是永久性的

这是不正确的。从嵌套类对A实例的属性所做的更改与以其他方式进行的更改没有什么不同。

如果他们没有出现按预期工作,可能嵌套的类实例属于A的不同实例而不是您正在查看的实例。但那是猜测。

无论如何,如果你有一些具体的“意外行为”,你需要描述它......最好提供一个SSCCE ...如果你想让我们提供解释。

答案 1 :(得分:0)

它会起作用。以下是一个示例:https://stackoverflow.com/a/5770638/1127492

真正的问题是,是否要从内部类和外部类修改这些属性。我建议不这样做,因为如果两个编写器同步修改相同的属性,它将导致意外的结果。这就是为什么Eclipse中有一个偏好选项来限制这种访问。