せいぎょ者


🔷 コントロールバー


クラス、変数、メソッドに使用される宣言子は、1つのターゲットの組合せに複数のコントロールを使用することができます.
🔸 アクセス制御者:public、protected、default、private
🔸 その他:static、final、abstract、native、transient、synchronized、volatile、strictfp
アクセス制御者は4分の1しか使用できません.

🔷 アクセス制御者


🔸 外部アクセス禁止の役割
-private:同じクラスでのみアクセス可能
-(default):同じパッケージ内でのみアクセスできます(defaultは通常省略されます).
-protected:同じパッケージまたは継承関係のサブクラスにアクセスできます.
-public:アクセス制限なし

🔹 アクセス制御プログラムを使用する理由


🔸 カプセル化
-パスワードなどのデータが外部で勝手に変更されないように、外部からのアクセスを制限します.
-内部で使用されている部分が外部に露出しないようにする
通常、メンバー変数の値を取得または変更する場合はgetter、setterを使用します.

🔹 作成者のアクセス制御者


作成者にアクセス制御者を使用することもできます.
final class Singleton{
    // 
    private static Singleton singleton = new Singleton();

    private singleton(){
        ...
    }
   
    // 인스턴스의 생성없이 사용할 수 있어야 하기 때문에 public에 static 제어자를 사용해야한다.
    public static Singleton getInstance(){
        return singleton;
    }
}
// ---------------
class Test{
    public static void main(String args[]){
        Singleton sigleton = Singleton.getInstance();
        Singleton singleton = new Singleton(); // 에러 : 접근제어자가 private
    }
}

🔷 それ以外は


🔹 1. static


🔸 'クラスの「」、「共通」
🔸 静的メンバー変数とメソッド:インスタンスを作成する必要はありません.
(インスタンスメンバーは静的メソッドでは直接使用できません.)
🔸 staticのメンバー変数が追加されました:すべてのインスタンスで共通に使用される変数となり、クラスがメモリにロードされたときに作成されます.
class Test{
    // 클래스 변수
    static int width = 10;
    static int height = 20;
   
    // 클래스 초기화 블럭
    static { 
        // static변수의 초기화 수행
    }
   
    // 클래스 메서드
    static int max(int a, int b){
        return a > b ? a : b;
    }
}

🔹 2. final


🔸 '変更できません
🔸 finalに付属する変数finalに付属する変数:定数
🔸 finalに付属するクラス:変更できないクラスを継承できません
🔸 finalに付随するメソッド:変更できないメソッド勘定科目の勘定科目は上書きできません.
// 조상이 될 수 없는 클래스
final class Test{
    // 상수
    final int WIDTH = 10;
    final int HEIGHT = 20;

    // 값을 변경할 수 없는 메서드
    final int max(int a, int b){
        return a > b ? a : b;
    }
}
🔸 パラメータの作成者を宣言
      作成器のパラメータを指定することで、インスタンスの作成時にfinalに付属するメンバー変数を初期化できます.
      各インスタンスは、メンバー変数の値を異なるものにすることができます.
class Test{
    final int WIDTH = 10;
    final int HEIGHT = 20;

    Test(int width, int height){
        WIDTH = width;
        HEIGHT = height;
    }
    // 인스턴스 생성 시 넘겨받는 매개변수로 WIDTH, HEIGHT의 값을 초기화 한다.
}

🔹 3. abstract


🔸 '抽象的
🔸 abstract付きクラスabstract付きクラス:抽象メソッドを持つクラス
🔸 ≪サマリー付きメソッド|Method with Summary|emdw≫:未完了のメソッド.宣言のみを作成し、インプリメンテーションを作成しません.
abstract class Test{
    abstract void testA(); // 추상메서드 : 구현부가 없음
}
🔸 抽象クラスは未完了クラスであるため、インスタンスを作成できません.(インスタンスを作成する必要はありません.)
ААААААААААААААААА