A.java:
public class A {
public static StartActivity startActivity;
}
B.java:
public class StartActivity extends Activity
public void onCreate(Bundle savedInstanceState) {
A.activity = this;
}
}
从上面2个java文件中,请问a.activity = this;
是什么意思?
这是否意味着创建一个新的 Activity 实例?
最佳答案
Do that mean create a new instance of activity?
没有。 activity 是一个字段,而不是一个类,你不能创建一个变量的“实例”,只是类的。所有这些代码所做的就是将一个已经存在的对象(当前 b 对象)分配给 a 的静态字段、 Activity ,仅此而已。
编辑
更正,我想 Activity 也是一个类,因为你有一个类型和一个同名的变量, Activity ?您的命名是非标准的,这极大地混淆了问题和您的问题。我建议你改变你的问题并使命名标准和不混淆。包括类、接口(interface)和枚举在内的所有类型都应以大写字母开头,所有变量都应以小写字母开头。
编辑2
好的,在查看您编辑的问题中的最新代码后,我们看到 A 有一个静态 StartActivity 字段,也称为静态变量,称为 Activity。在类 B 的 onCreate(...)
方法内部,它将 this
(对当前 B 对象本身的引用)分配给 A 的 Activity 字段。因此,如果将 Activity 分配给先前的 StartActivity 对象,则如果调用其 onCreate(...)
方法,则该分配现在已更改为当前 B 对象。
关于java - 对象和类关系的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13243483/