Java SE Bronzeに必要な基礎知識をメモ
基本データ型
| データ型 | サイズ(bit) |
|---|---|
| byte | 8 |
| short | 16 |
| int | 32 |
| long | 64 |
| float | 32 |
| double | 64 |
| char | 16 |
| boolean | 1 |
予約語
| abstract | assert | boolean | break | byte | case | volatile |
| catch | char | class | const | continue | default | while |
| do | double | eles | enum | extends | final | void |
| finally | float | for | goto | if | implements | try |
| import | instanceof | int | interface | long | native | transient |
| new | package | private | protected | public | return | throws |
| short | static | strictfp | super | switch | synchronized | throw |
| this |
算術演算子
| 演算子 | 記述例 | 説明 |
|---|---|---|
| + | a+b | aとbを加算 |
| - | a-b | aからbを減算 |
| * | a*b | aとbを乗算 |
| / | a/b | aとbを除算 |
| % | a%b | aをbで除算した余り |
演算子(優先順)
| 演算子 | 結合規則 |
|---|---|
| ++ -- + - ~ ! | 右 |
| * / % | 左 |
| << >> >>> | 左 |
| < > <= >= instanceof | 左 |
| == != | 左 |
| & | 左 |
| ^ | 左 |
| | | 左 |
| && | 左 |
| || | 左 |
| ?? | 左 |
| ?: | 右 |
| = *= /= %= += -= <<= >>= >>>= &= ^= != | 右 |
単項演算子(例)
| aの初期値 | 式 | 実行後のa | 実行後のb | 説明 |
|---|---|---|---|---|
| 10 | b= ++1 | 11 | 11 | 計算してから代入 |
| 10 | b = a++ | 11 | 10 | 代入してから計算 |
| 10 | b = --a | 9 | 9 | 計算してから代入 |
| 10 | b = a-- | 9 | 10 | 代入してから計算 |
if else if else 文
if (条件式) {
処理文1
else if (条件式) {
処理文2
} else {
処理文3
}
条件演算子
条件式 ? 式1 : 式2
switch文
switch (式) {
case 定数1 :
処理1
continue; // <- 次の条件へ続く
処理2 // 残りの処理はスキップ
case 定数2 :
処理2
break; // <- switchから抜ける
・・・・
default :
処理n;
}
//結果は**byte**,**char**,**short**,**int**,**enum**,**string**である
while文
while (条件式) {
処理;
}
do while 文
do {
処理;
} while (条件式);
※ do-while文とwhile分の違いは条件判定が行われるタイミング
for文
ラベル名 :
for (式1,式2,式3) {
処理;
for (式1,式2,式3) {
break ラベル名 // <- 外側のforから抜ける
}
}
//拡張型
for (変数宣言 : 参照変数名) {
処理;
}
//配列などを指定して実行させる
クラスの定義
class クラス名 {}
変数の定義
データ型 メンバ変数名;
メソッドの定義
戻り値の型 メソッド名(引数リスト) {}
インスタンス化
データ型 変数名 = new クラス名();
static変数
クラス名.static 変数名 || クラス名.static.メソッド名 //呼び出し
アクセス修飾子とカプセル化
アクセスの幅が広い順
| アクセス修飾子 | クラス | コンストラクタ | メンバ変 数 | メソッド |
|---|---|---|---|---|
| public | ok | ok | ok | ok |
| protected | ng | ok | ok | ok |
| デフォルト(指定なし) | ok | ok | ok | ok |
| private | ng | ok | ok | ok |
| ※ protectedとprivateはクラスに指定することはできない |
推奨されているアクセスルール
- インスタンス変数はprivateにする
- メソッドはアクセスをpubicにする
スーパークラスとサブクラス(受け継ぐ)
class サブクラス名 extends スーパークラス名 {}
final
// サブクラスでオーバーライドできなくする
final 戻り値の型 メソッド名(引数リスト) {} //メソッドに適応
// 定数にする
final class クラス名 {} //クラスに適応
this
this.変数名 // 自オブジェクトがもつ変数
super
super.メソッド名 //サブクラスでスーパークラスのメソッドを呼び出している
抽象クラスとメソッド
abstract class クラス名 {} //クラス
abstract 戻り値の型 メソッド名(引数リスト); // メソッド
// 処理を持たないので、{}せず;で終わる
インターフェイス
// インターフェイスとは公開すべき操作をまとめたクラスの仕様
// classではなくinterfaceキーワードを仕様する
interface インターフェイス名 {}
- 変数は定数のみ
- インスタンス化できないので実装クラスを定義する
- 抽象メソッドをすべてオーバーライドする
- 実装クラスを定義するにはimplementsを使用
- サブインターフェイスを宣言するにはextendsを使用