LoginSignup
11

More than 5 years have passed since last update.

Java基礎中の基礎

Posted at

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を使用

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11