在 onCreate() 中初始化的属性

Attribute initialized in onCreate()

我用一个属性 int a.
创建了我的 class(扩展 Activity) onCreate()方法中属性自动初始化为0。

正常吗?

in the method onCreate().

不,它没有在 onCreate() 中初始化。它在实例化 class 的对象时初始化。

0

是的。 int 的变量是原始类型,只能保存数值,除非您以其他方式初始化它,否则它将被分配为 0(与 Integer 相反,它也可以是 null) .

查看文档:

https://docs.oracle.com/javase/tutorial/java/javaOO/index.html https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

这是正常的。你看,"int" 是原始类型。它不是一个对象,因此,它不能包含 "null" 值。如果您希望您的变量在 onCreate() 时为 null,则必须将其类型更改为它的 Object 表示形式。 "Integer" class 表示原始类型 "int".

来自官方Java教程:

Fields that are declared but not initialized will be set to a reasonable default by the compiler.

检查每种数据类型的默认值:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html