変数とは
- インスタンス変数(非staticフィールド)
- クラス変数(staticフィールド)
- ローカル変数
- パラメータ
命名とは
一般的にクラス名はPascal形式、変数、メソッドはCamel形式
基本データ型とは
プリミティブなcharデータ型は、16ビットのUnicode文字
デフォルト値
初期化されていないローカル変数にアクセスしようとすると、コンパイルエラーになる。
リテラル
char及びString型のリテラルには。任意のUnicode(UTF-16)文字を含めることが出来る。
配列
int[] array;
でも良いし、
int array[];
でも良い。但し、後者は推奨された書き方では無い。
変数のまとめ
- フィールド、変数の違い
- 非staticフィールド、staticフィールドの違い
- ローカル変数と引数
- プリミティブデータ型(byte, short, int, long, float, double, boolean, char)
- これらにはデフォルト値をコンパイラが割り当てる(ローカル変数の場合は割り当てられない)
- リテラルは、固定値のソースコード上での表現
- 配列はコンテナオブジェクト
演算子
代入、算術、単項
等値、関係、条件
型比較演算子 instanceof
superclsを継承したsubclsがあって、
subcls sub = new subcls();
supercls supe = new supercls();
if( sub instanceof subcls) System.out.println("1");
if( sub instanceof supercls) System.out.println("2");
if( supe instanceof subcls) System.out.println("3");
if( supe instanceof supercls) System.out.println("4");
を実行した場合、1,2,4と出力されます。
3.が何故出力されないかというと、superclsのインスタンスであるsupeにはsubclsが実装されていないので、評価がfalseとなります。
演算子のまとめ
式、文、ブロック
フロー制御子
if文とif-else文
Java言語仕様によると、正しくはif-then文と書かれている。
for文
C#の場合、コレクションから要素を取り出すforeach文はforeachというキーワードを使用しているが、
int[] array = { 20, 30 };
foreach (int item in array)
{
System.Console.WriteLine(item.ToString());
}
Javaの場合は、foreach文はfor文の拡張としている為、下記の様な記述となる。
int[] array = { 20, 30 };
for(int item : array)
{
System.out.println(item);
}
分岐文
break文
ラベル付きのbreak文が
int[] array = { 20, 30, 40 };
int[] array2 = { 50, 60, 70 };
label:
// 大ループ
for(int i : array)
{
// 小ループ
for(int j : array2)
{
if(j == 60)
{
break label;
}
}
}
}
フロー制御文のまとめ
雑感
シンタックスの章は長いからキツい……