【发布时间】:2017-08-28 16:54:53
【问题描述】:
我使用属性 int a 创建了我的类(扩展 Activity)。
该属性在 onCreate() 方法中自动初始化为 0。
正常吗?
【问题讨论】:
-
如果你没有给
int属性赋值,默认情况下它在构造时初始化为0。 Activity 的生命周期方法onCreate(...)稍后会被调用,所以如果你没有在onCreate(...)中赋值,则使用默认值。
我使用属性 int a 创建了我的类(扩展 Activity)。
该属性在 onCreate() 方法中自动初始化为 0。
正常吗?
【问题讨论】:
int属性赋值,默认情况下它在构造时初始化为0。 Activity 的生命周期方法onCreate(...) 稍后会被调用,所以如果你没有在onCreate(...) 中赋值,则使用默认值。
这是正常的。你看,“int”是一个原始类型。它不是一个对象,因此它不能保存一个“空”值。如果您希望您的变量在 onCreate() 时为 null,则必须将其类型更改为它的 Object 表示形式。 “Integer”类表示原始类型“int”。
【讨论】:
来自官方 Java 教程:
已声明但未初始化的字段将设置为 编译器的合理默认值。
检查每种数据类型的默认值:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
【讨论】:
在 onCreate() 方法中。
不,它没有在 onCreate() 中初始化。它在您的类的对象被实例化时被初始化。
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
【讨论】: