2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Java8 Gold試験の備忘録

Last updated at Posted at 2018-05-07

書きかけ

Javaのクラス設計

不変クラス

  • クラス:継承されないようにfinal宣言
  • フィールド:外部からのアクセスと変更を不可にするため、private final宣言
  • アクセサメソッド:ゲッターメソッドのみ提供

static初期化子

public class Test {
    static int x;
    static { x = 1; }

Enum

  • 自動的にfinalクラスとしてコンパイルされるため、修飾子にfinalやabstructは指定できない
  • 自動的にstaticが修飾されるが、明示的にstaticを付けてもよい
  • extendsはできないが、implementsは可能
  • メソッド内での宣言は不可
  • コンストラクタは必ずprivateで宣言する
  • フィールドやメソッドを記述する場合は、列挙定数の最後にセミコロンが必要。記述しない場合は、セミコロンは付けても付けなくてもよい
メソッド 説明
static E valueOf(String name) 指定された名前の列挙定数を返却
static E[] values() 列挙型の配列を返却
String name() 列挙定数名を文字列としたを返却
int ordinal() 0から始まる列挙定数の序数を返却

Java8での追加要素

interface A {
    static void test1() {
        System.out.println("static");
    }

    default void test2() {
        System.out.println("default");
    }
}

class B implements A { }

class test {
    public static void main(String[] args) {
        A.test1(); // 「static」
        A.test2(); // コンパイルエラー
        B b = new B();
        b.test1(); // コンパイルエラー
        b.test2();  // 「default」
    }
}
  • 同じシグニチャのdefaultメソッドを持つinterfaceを多重継承した場合、コンパイルエラーが発生する。そのため、オーバーライドする必要性がある。
  • 同じシグニチャのdefaultメソッドを持つinterfaceの型階層の距離が違う場合は多重継承が可能である。その際、距離が最も近いdefaultメソッドが呼び出される。

デザインパターン

シングルトン

public class Singleton {
    private static Singleton s = new Singleton(); // 1

    private Singleton() {} // 2

    public static Singleton getInstance(){ // 3
        return singleton;
    }
}

①インスタンスが常に一つだけ生成されるように、private staticフィールドを宣言する。
②外部からインスタンスを生成できないように、コンストラクタをprivateで宣言する。
③外部からインスタンス参照を取得できるように、インスタンスを返却するpublic staticメソッドを宣言する。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?