せいぎょ者
🔷 コントロールバー
クラス、変数、メソッドに使用される宣言子は、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(); // 추상메서드 : 구현부가 없음
}
🔸 抽象クラスは未完了クラスであるため、インスタンスを作成できません.(インスタンスを作成する必要はありません.)ААААААААААААААААА
Reference
この問題について(せいぎょ者), 我々は、より多くの情報をここで見つけました https://velog.io/@hyunbenny/제어자テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol