在onCreate()中初始化的属性

问题描述:

我用属性int a创建了我的类(exending Activity)。
该属性在方法onCreate()中自动初始化为0。在onCreate()中初始化的属性

这是正常的吗?

+1

如果你没有指定一定的参考价值'int'属性,它是在施工时,默认情况下取值为0初始化。 Activity的生命周期方法'onCreate(...)'稍后被调用,所以如果你没有在'onCreate(...)'中分配一些值,那么使用默认值。 – matoni

这是正常的。你看,“int”是一个原始类型。它不是一个对象,因此它不能包含“空”值。如果你想让你的变量在onCreate()处为null,你必须将它的类型改为它的Object表示。 “Integer”类表示原始类型“int”。

onCreate()方法。

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

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

见文档:

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

来自官方的Java教程:被声明但尚未初始化

字段将被设置为编译器一个 合理的默认。

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