0
0

More than 3 years have passed since last update.

あたまのなかの整理メモ(Java - インスタンス編)

Last updated at Posted at 2020-03-08

My Java環境

  • java11

static

  • staticなフィールドは、インスタンスを生成しなくても使用できる
  • クラス名.フィールド名または、インスタンス生成後にインスタンス名.フィールド名で使用する
  • staticなメソッドからstaticではないフィールドやメソッドにはアクセスできない(staticなメソッドからはstaticなフィールドやメソッドにしかアクセスできない)
  • staticではないメソッドからstaticなフィールドやメソッドにはアクセスできる

メソッドの戻り値

  • メソッドの戻り値は戻り値と同じ型または互換性のある型である必要がある。

可変長引数

  • 引数の数を自由に変更できる引数のこと。JVMによって配列に置き換えられる。
  • 引数の型の直後にピリオド3つ...をつけて宣言する。

public static void main(String... args) {
    // 処理
}
  • 可変長引数を最後の引数にする必要がある。

public void method(String value, String... args) {  } // OK
public void method(String... args, String value) {  } // NG

メソッドのオーバーロード

  • メソッドの名前が同じ、引数が異なる(引数の数・型・並び順)

コンストラクタ

  • メソッド名をクラス名と同じにすること
  • 戻り値は記述できない
  • newしたときにしか呼ばれない、呼べない
  • アクセス修飾子はなんでもOK

コンストラクタと初期化子{}

初期化子{}は、クラスブロック直下に記述する。コンストラクタが実行される前に実行される。


public class Test {
    {
        // 初期化処理
    }
}

static初期化子もある。クラスがロードされたときに実行される。


public class Test {
    static {
        // 初期化処理
    }
}
  • デフォルトコンストラクタはコンストラクタを1つも定義しない場合に追加される。
  • コンストラクタからオーバーロードされた別のコンストラクタを呼ぶときはthis(...)を使用するが、使用する際は処理の1番最初に記述する必要がある。

修飾子

  • public : すべてのクラスからアクセス可能
  • protected : 同じパッケージと、継承しているサブクラスからアクセス可能
  • (なし) : 同じパッケージのクラスからアクセス可能
  • private : クラス内からのみアクセス可能

メソッドの引数

  • プリミティブ型をメソッドの引数に指定した場合は、メソッドにはコピーが渡される(メソッド内で値が変更されても、呼び出し元の値には影響しない。)
  • オブジェクト型をメソッドの引数に指定した場合は、メソッドにはインスタンスの参照(リンク)が渡される。(メソッド内で値が変更されたら、呼び出し元の値も変わる。)
0
0
0

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
0
0