Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。

変数

Javaの変数について説明します。

変数の宣言、代入、参照

変数の宣言は以下のようにして行います。

データ型 変数名;

int x;

//複数の変数を同時に宣言することもできます。
double x, y, z;

変数の値の代入は以下のようにして行います。

変数名 = 値;

x = 10;

//宣言と同時に値を代入することもできます。
byte y = 20;

//char型の変数に値を代入する場合は' 'で値を囲みます。
char z = 'A';

変数名を記載することで、変数に代入された値を参照することができます。

int x = 10;

//変数xを参照し、10が表示されます。
System.out.println(x);

データ型

整数型

デフォルト値 サイズ 範囲
byte 0 8bit -128 ~ 127
short 0 16bit -32768 ~ 32767
int 0 32bit -2147483648 ~ 2147483647
long 0 64bit -9223372036854775808 ~ 9223372036854775807
  • メモリリソースの有効活用を考え、適切な型を宣言します。上限が100の変数に対して、int型を宣言しないようにします。
  • long型の値を代入する際、値の後ろにLもしくはl(小文字のL)を付与することにより強制的にlong型にすることができます。l(小文字のL)は1(数字の1)と間違えやすいため、一般的にはLを使用します。 ( x = 200L; )
  • 8進数を代入する際、値の先頭に0を付与します。( x = 0537; ) 16進数を代入する際、値の先頭に0xもしくは0Xを付与します。( x = 0xB7A; )

浮動小数点型

デフォルト値 サイズ 範囲
float 0.0 32bit 約(-)3.40282347E+38(約6~7桁の精度)
double 0.0 64bit (-)1.79769313486231570E+388(15桁の精度)
  • 浮動小数点型はそのサイズにかかわらず常にdouble型となります。float型を使用する際は値の後ろにFもしくはf を付与します( abc = 3.14F; )。明示的にdouble型を表す際は値の後ろにDもしくはdを付与します( xyz =  124.543D; )。

その他

デフォルト値 サイズ 範囲
char \u0000 16bit \u0000 ~ \uFFFF
boolean false 1bit true、false
  • char型は一文字のUnicode文字を使用することができます。代入する際は値をシングルクォーテーションで囲みます。( xyz = '月'; )
  • boolean型の代入値はtrue、falseのみです。TRUE、Falseなど大文字小文字の間違えに気をつけてください。

final変数

finalで宣言された変数は、一度値を代入された後は変更することはできません。変更されたくない値、数値では表現しにくい値を後で見やすくするためなどに使用します。一般的に変更されたくない変数(定数)を宣言する場合、その変数名はすべて大文字で宣言され、複数の単語をつなげる際は_(アンダーバー)を使用します。(RATE、RATE_OF_DISCOUNTなど)

消費税計算の例

final変数を使用しない場合

price = 100 + 100 * 0.05;
//後で見直した際どのような処理をしているかわかりにくい

final変数を使用する場合

final float SHOHIZEI = 0.05F;
price = 100 + 100 * SHOHIZEI;
//後で見直した際どのような処理をしているか分かり易い

final変数は宣言するときに値を代入することも、先に宣言しておき後から値を代入することもできます。いずれも値を代入した後から値を変更することはできません。

final float RATE = 0.25F; //宣言時に値を代入する場合

final float RATE; //後から値を代入する場合
RATE = 0.25F;

スコープ

スコープとは変数名のみを使用してその変数を参照することができる範囲のことです。大きくメンバ変数のスコープとローカル変数のスコープに分けられます。

メンバ変数とは特定のクラスに属する変数で、通常、クラス宣言の直後に宣言します。メンバ変数のスコープは宣言されたクラス全体となり、クラス内のいずれのメソッド、コンストラクタからも参照できます。メンバ変数の詳細はJavaの道:メンバ変数を参照してください。 ローカル変数とは特定のメソッドやコンストラクタに属する変数で、メソッドやコンストラクタの中で宣言されます。スコープは宣言された位置のコードブロック({})で囲まれた範囲となり、他のメソッド、コンストラクタから参照することはできません。

同一スコープ内で同じ名前の変数を宣言することはできません。

class A {  //Aクラス
    //(1)メンバ変数aの宣言
    int a = 10;

    public static void main(String args[]){  //mainメソッド
        //(2)ローカル変数xの宣言
        int x = 20;
        A aaa = new A();
        aaa.show();
    }

    void show(){   //showメソッド
        //(3)ローカル変数yの宣言
        int y = 30;
        //(4)メンバ変数aの参照
        System.out.println("変数aは" + a + "です。");
        //(5)ローカル変数xの参照
        //System.out.println("変数xは" + x + "です。");
        //(6)ローカル変数yの参照
        System.out.println("変数yは" + y + "です。");
    }
}

解説

  1. (1)メンバ変数aを宣言します。メンバ変数のスコープは宣言されたクラス全体です。
  2. (2)ローカル変数xを宣言します。ローカル変数のスコープは宣言された位置のコードブロック({})内で、ここではmainメソッド内です。
  3. (3)ローカル変数yを宣言します。スコープは、showメソッド内です。
  4. (4)メンバ変数aを参照します。メンバ変数aのスコープはクラス全体であるためaを参照することができます。
  5. (5)ローカル変数xを参照します。ローカル変数xのスコープはmainメソッド内であるため、showメソッドから参照することはできません。コンパイルエラーとなります。
  6. (6)ローカル変数yを参照します。ローカル変数yのスコープはshowメソッド内であるため、yを参照することができます。

実行結果

C:\source>javac A.java

C:\source>java A
変数aは10です。
変数yは30です。

C:\source>

1変数