「4.12.5. 変数の初期値」の編集履歴(バックアップ)一覧はこちら
「4.12.5. 変数の初期値」(2012/09/11 (火) 15:06:10) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
*[[4. 型と値と変数]]
**[[4.1. 型と変数の種類]]
**[[4.2. プリミティブ型と値]]
**[[4.3. 参照型と値]]
**[[4.4. 型変数]]
**[[4.5. 引数付き型]]
**[[4.6. 型の抹消]]
**[[4.7. 具象可能型]]
**[[4.8. 未加工型]]
**[[4.9. 交差型]]
**[[4.10. サブタイプ化]]
**[[4.11. 型の使用箇所]]
**[[4.12. 変数]]
***[[4.12.1. プリミティブ型の変数]]
***[[4.12.2. 参照型の変数]]
***[[4.12.3. 変数の種類]]
***[[4.12.4. final変数]]
***4.12.5. 変数の初期値
プログラム内のどの変数もその値が使用される前に値を持たなくてはなりません。:
-クラス変数やインスタンス変数や配列要素は作成された時([[15.9.>15.9. クラスインスタンス作成式]]、[[15.10.>15.10. 配列作成式]])に&i(){デフォルト値(default value)}で初期化されます。
--&tt(){byte}型のデフォルト値はゼロ、つまり&tt(){(byte)0}の値です。
--&tt(){short}型のデフォルト値はゼロ、つまり&tt(){(short)0}の値です。
--&tt(){int}型のデフォルト値はゼロ、つまり&tt(){0}です。
--&tt(){long}型のデフォルト値はゼロ、つまり&tt(){0L}です。
--&tt(){float}型のデフォルト値は正のゼロ、つまり&tt(){0.0f}です。
--&tt(){double}型のデフォルト値は正のゼロ、つまり&tt(){0.0d}です。
--&tt(){char}型のデフォルト値はヌル文字、つまり&tt(){'\u0000'}です。
--&tt(){boolean}型のデフォルト値は&tt(){false}です。
--全ての[[参照型>4.3. 参照型と値]]のデフォルト値は&tt(){null}です。
-[[メソッド引数>8.4.1. 仮引数]]は[[メソッドの呼び出し>15.12. メソッド呼び出し式]]の対応する実引数の値でそれぞれ初期化されます。
-[[コンストラクター引数>8.8.1. 仮引数と型引数]]は[[メソッドの呼び出し>15.12. メソッド呼び出し式]]の対応する実引数の値でそれぞれ初期化されます。
-[[例外引数>14.20. try文]]は例外を表すスローされたオブジェクトで初期化されます([[11.3.>11.3. 実行時の例外の扱い]]、[[14.18.>14.18. throw文]])。
-局所変数([[14.4.>14.4. 局所変数宣言文]]、[[14.14.>14.14. for文]])はそれが使用される前に、[[確実な代入>16. 確実な代入]]のルールを使って検証することが方法で、 [[初期化>14.4. 局所変数宣言文]]か[[代入>15.26. 代入演算子]]のいずれかで明示的に値を与える必要があります。
#divstyle(background-color:#f0f0ff;border:1px solid black;padding 4px){{{
&bold(){&aname(ex4.12.5-1,option=nolink){例4.12.5-1. 変数の初期値}}
class Point {
static int npoints;
int x, y;
Point root;
}
class Test {
public static void main(String[] args) {
System.out.println("npoints=" + Point.npoints);
Point p = new Point();
System.out.println("p.x=" + p.x + ", p.y=" + p.y);
System.out.println("p.root=" + p.root);
}
}
&i(){&small(){このプログラムは以下を出力します。:}}
npoints=0
p.x=0, p.y=0
p.root=null
&i(){&small(){これはクラス&tt(){Point}が[[準備>12.3.2. クラスやインタフェース型の準備]]された場合に起こる&tt(){npoints}のデフォルト初期化と、新たな&tt(){Point}が初期化された際に起こる&tt(){x}と&tt(){y}と&tt(){root}のデフォルト初期化を表しています。ロード、リンク、クラスとインタフェースの初期化についての完全な記述や、新たなクラスインスタンスを作成するためのクラスの初期化の記述については[[12.>12. 実行]]を参照してください。}}
***[[4.12.6. 型とクラスとインタフェース]]
*[[4. 型と値と変数]]
**[[4.1. 型と変数の種類]]
**[[4.2. プリミティブ型と値]]
**[[4.3. 参照型と値]]
**[[4.4. 型変数]]
**[[4.5. 引数付き型]]
**[[4.6. 型の抹消]]
**[[4.7. 具象可能型]]
**[[4.8. 未加工型]]
**[[4.9. 交差型]]
**[[4.10. サブタイプ化]]
**[[4.11. 型の使用箇所]]
**[[4.12. 変数]]
***[[4.12.1. プリミティブ型の変数]]
***[[4.12.2. 参照型の変数]]
***[[4.12.3. 変数の種類]]
***[[4.12.4. final変数]]
***4.12.5. 変数の初期値
プログラム内のどの変数もその値が使用される前に値を持たなくてはなりません。:
-クラス変数やインスタンス変数や配列要素は作成された時([[15.9.>15.9. クラスインスタンス作成式]]、[[15.10.>15.10. 配列作成式]])に&i(){デフォルト値(default value)}で初期化されます。
--&tt(){byte}型のデフォルト値はゼロ、つまり&tt(){(byte)0}の値です。
--&tt(){short}型のデフォルト値はゼロ、つまり&tt(){(short)0}の値です。
--&tt(){int}型のデフォルト値はゼロ、つまり&tt(){0}です。
--&tt(){long}型のデフォルト値はゼロ、つまり&tt(){0L}です。
--&tt(){float}型のデフォルト値は正のゼロ、つまり&tt(){0.0f}です。
--&tt(){double}型のデフォルト値は正のゼロ、つまり&tt(){0.0d}です。
--&tt(){char}型のデフォルト値はヌル文字、つまり&tt(){'\u0000'}です。
--&tt(){boolean}型のデフォルト値は&tt(){false}です。
--全ての[[参照型>4.3. 参照型と値]]のデフォルト値は&tt(){null}です。
-[[メソッド引数>8.4.1. 仮引数]]は[[メソッドの呼び出し>15.12. メソッド呼び出し式]]の対応する実引数の値でそれぞれ初期化されます。
-[[コンストラクター引数>8.8.1. 仮引数と型引数]]は[[メソッドの呼び出し>15.12. メソッド呼び出し式]]の対応する実引数の値でそれぞれ初期化されます。
-[[例外引数>14.20. try文]]は例外を表すスローされたオブジェクトで初期化されます([[11.3.>11.3. 実行時の例外の扱い]]、[[14.18.>14.18. throw文]])。
-局所変数([[14.4.>14.4. 局所変数宣言文]]、[[14.14.>14.14. for文]])はそれが使用される前に、[[確実な代入>16. 確実な代入]]のルールを使って検証することができる方法で、 [[初期化>14.4. 局所変数宣言文]]か[[代入>15.26. 代入演算子]]のいずれかで明示的に値を与える必要があります。
#divstyle(background-color:#f0f0ff;border:1px solid black;padding 4px){{{
&bold(){&aname(ex4.12.5-1,option=nolink){例4.12.5-1. 変数の初期値}}
class Point {
static int npoints;
int x, y;
Point root;
}
class Test {
public static void main(String[] args) {
System.out.println("npoints=" + Point.npoints);
Point p = new Point();
System.out.println("p.x=" + p.x + ", p.y=" + p.y);
System.out.println("p.root=" + p.root);
}
}
&i(){&small(){このプログラムは以下を出力します。:}}
npoints=0
p.x=0, p.y=0
p.root=null
&i(){&small(){これはクラス&tt(){Point}が[[準備>12.3.2. クラスやインタフェース型の準備]]された場合に起こる&tt(){npoints}のデフォルト初期化と、新たな&tt(){Point}が初期化された際に起こる&tt(){x}と&tt(){y}と&tt(){root}のデフォルト初期化を表しています。ロード、リンク、クラスとインタフェースの初期化についての完全な記述や、新たなクラスインスタンスを作成するためのクラスの初期化の記述については[[12.>12. 実行]]を参照してください。}}
}}}
***[[4.12.6. 型とクラスとインタフェース]]
表示オプション
横に並べて表示:
変化行の前後のみ表示: