2017-08-28 8 views
-1

属性intを使用してクラスを作成しました(アクティビティを終了します)。
属性は、onCreate()メソッドで自動的に0に初期化されます。属性はonCreate()で初期化されます

正常ですか?

+1

、それはデフォルトでは '0'の値に構築時に初期化されます。アクティビティのライフサイクルメソッド 'onCreate(...)'は後で呼び出されるので、 'onCreate(...) 'に何らかの値を代入していなければ、デフォルト値が使われます。 – matoni

答えて

2

は、ドキュメントを参照してください。 "int"はプリミティブ型です。これはオブジェクトではないため、「null」値を保持することはできません。 onCreate()で変数をnullにしたい場合は、変数の型をObject表現に変更する必要があります。 "Integer"クラスはプリミティブ型 "int"を表します。

1

onCreate()のメソッドです。

いいえ、onCreate()で初期化されていません。これは、クラスのオブジェクトがインスタンス化されるときに初期化されます。

はいそうです。 intの変数は数値のみを保持できます。それ以外の方法で初期化しないと、0nullの場合もあります。Integerとは異なります)が割り当てられます。これは正常です

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

1

公式Javaチュートリアルから:

宣言されていますが初期化されていないフィールドは、コンパイラによって 合理的なデフォルトに設定されます。各データ型の

チェックデフォルト値は:あなたがint`属性 `にいくつかの値を割り当てない場合https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

関連する問題