java - 对象和类关系的含义

标签 java android oop

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/

相关文章:

c++ - 为迭代器实现泛型方法的正确方法

java - 一个巨大的3D立方体的加工如何划分?

php - Firebase Api Key 仅不适用于 iOS

java - Android 应用程序无法连接到互联网

Android 和 iOS 设备硬件视角编程体验

Python--动态多重继承

python - 为什么 Python 中的数据类需要重写

java - 给我一个 Oracle Streams 的简单示例?

java - 使用对象属性中的别名将映射序列化为对象

java - 配置ldap以授权用户