Javaの制御者

3611 ワード

制御者とは、クラス、変数、またはメソッドに付加される付加的な意味を指す.
コントローラタイプ
1) 접근제어자 : public, protected, default, private

public < protected < default < private (보안도가 높은 순서)

- public: 어디서든 접근 가능
- protected: 같은 패키지 + 상속 관계에서 접근 가능
- default(접근 제어자를 붙여주지 않으면 default 처리된다): 
같은 패키지 안에서 접근 가능
- private: 같은 클래스 안에서 접근 가능

2) 그 외 : static, final, abstract, synchronized, volatile,..
まず,アクセス制御者は,オブジェクト向けプログラミングにおいて,外部から変数やメソッドに直接アクセスすることを制限し,getterやsetterメソッドを用いた間接アクセスを導く概念である.(したがって、メンバー変数をprivateとして宣言することが望ましい)
スタティツクコントローラ
staticは、静的変数またはメソッドを作成する制御者です.
静的な静的変数(メソッド)は、動的実行中にオブジェクトを作成するときにメモリを割り当てる変数とは異なり、プログラムが終了するまでプログラムの開始時にメモリを割り当てます.
したがって、オブジェクトを作成するには、メモリに再割り当てするのではなく、グローバル変数のように使用できます.
このため、Javaで定数を処理すると、次のように表現されます.

static final int UPPER_LIMIT = 1000;
これらの静的変数(またはメソッド)を使用すると、インスタンス化プロセスを必要とせずにclass명.static변수(메서드)이름が呼び出されます.
静的使用上の注意
一方,static変数やメソッドを用いる場合には注意すべき点が多い.
まず、classの場合、メモリ内の静的領域に存在するが、インスタンス化されて使用されると、これらのオブジェクトはメモリ内のheap 영역に格納される.また,heap領域に存在するデータはjavaゴミ収集器によって管理される.
ただし、静的変数およびメソッドはstatic 영역に格納されており、この場合、これらの変数およびメソッドを使用しなくてもプログラム終了時にメモリが割り当てられるため、頻繁に使用するとシステムのパフォーマンスに悪影響を及ぼす可能性がある.
次に、静的変数とメソッドを通常のメンバー変数とともに使用する場合は、注意してください.なぜなら、これらの変数とメソッドのロードポイントが異なるからです.
=>たとえば、クラスのstatic 메서드でクラスの일반 멤버 변수を使用する場合は、staticメソッドでクラスの객체를 생성を使用し、メンバー変数を使用する必要があります.
(静的メソッドのメモリ割当てポイントは프로그램 시작 시점であり、使用するメンバー変数のメモリ割当てポイントはクラスの객체가 생성될 때である)