変数
変数の宣言
Java言語はC/C++など、変数のサイズが決まっている言語同様に
変数は使用前に宣言しなければいけません
変数はあらゆるプログラムの基本であり、かつ重要なカギを握る技術です
変数の宣言をするには、まず変数の型を指定します
これは、その変数がどのくらいの記憶領域を確保するのか、どのような使用目的かを明確にします
宣言時にこの変数の型を指定する宣言子と、変数名を指定します
type var-name
typeには型宣言子を指定します
Java言語の型宣言子は以下の基本型が存在します
宣言子 | サイズ
|
---|
boolean | ブーリアン型(TrueかFalse)
|
byte | 8ビット符号付整数
|
char | 16ビットキャラクタデータ
|
short | 16ビット符号付整数
|
int | 32ビット符号付整数
|
long | 64ビット符号付整数
|
float | 32ビット符号付浮動小数点
|
double | 64ビット符号付浮動小数点
|
では、変数を宣言して実際に画面に出力してみましょう
class test {
public static void main(String argv[]) {
int var1 = 100;
char x = 'X';
double var2 = 0.141241;
System.out.println("int var1の値は = " + var1);
System.out.println(x + "感じてみろー!");
System.out.println("double var2の値は = " + var2);
}
}
当然変数の宣言のあとにもセミコロンをつけなくてはいけません
また、カンマで区切ることによって同時に同じ型の複数の変数を宣言できます
int var1,var2,var3...
Java言語は、上のプログラムを参照してのとおり、宣言と同時に変数の初期化を行なえます
もし宣言された変数が、初期化されることなく(宣言だけで何も代入されず)参照されればエラーが出ます
int a,b;
System.out.println(a+b);
このプログラムをmain()メソッドに書いてコンパイルするとエラーが出ます
キャラクタをchar型の変数に代入するにはシングルクォーテーションを用います
char x = 'X'; というのがそうです。当然16ビットまでなので文字列は代入できません
整数リテラルはint型と見なされ、小数点や指数を含む数値リテラルはdoubleと見なされます
long型やfloat型の値を表すには、サフィックスとしてlong型には「Lかl」、float型には「Fかf」を用います
class test {
public static void main(String argv[]) {
long var1 = 2200000000L;
float var2 = 1.123F;
System.out.println("var1 = " + var1);
System.out.println("var2 = " + var2);
}
}
16進数の表示
16進数については、Java言語の分野ではなく数学の分野なので説明は省きます
筆者は中学生の時に2進数を習った記憶があります。2進数がわかれば他の進数も理解できます
Java言語では、整数リテラルのみ8進数と16進数で表示することができます
浮動小数点は10進数のみでしか表示できません
ここでは、とくに多用する16進数の使い方をみてみましょう
class test {
public static void main(String argv[]) {
int var1 = 0xff;
System.out.println("var1 = " + (var1 + 1));
}
}
System.out.println("var1 = " + (var1 + 0x1));で、ちょっとややっこしいことしていますね
"var1 =" という文字列と (var1 + 0x1) という数値を加算しています
なぜカッコで囲むかというと、文字列が存在する以上、最終的には文字列に変換されます
そのときにカッコで囲まなかった場合は、数値が文字列として加算されてしまうのです
文字列として加算された場合は、そのままvar1の内容 ff つまり 255 に1という文字列が加算して
2551というアホな結果が得られます。エラーよりもこういったバグは見つけにくいので気をつけてください
16進数以外に8進数を表現することもできます
8進数の場合は先頭を0にすればよいです
算術演算については、次章で詳しく取り上げます
この場では、Java言語は文字列や数値を比較的自由に演算できることを知ってください