工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Java

Java アクセス修飾子

Java アクセス修飾子

このチュートリアルでは、Java アクセス修飾子、そのタイプ、および例を使用してそれらを使用する方法について学習します。

アクセス修飾子とは?

Java では、アクセス修飾子を使用して、クラス、インターフェイス、変数、メソッド、コンストラクター、データ メンバー、およびセッター メソッドのアクセシビリティ (可視性) を設定します。たとえば、

class Animal {
    public void method1() {...}

   private void method2() {...}
}

上記の例では、method1() と method2() の 2 つのメソッドを宣言しています。ここで、

キーワード public に注意してください と private .これらは Java のアクセス修飾子です。これらは、可視性修飾子としても知られています。

注意 :ゲッター メソッドのアクセス修飾子を設定することはできません。


アクセス修飾子の種類

アクセス修飾子の種類について学ぶ前に、Java パッケージについて知っておく必要があります。

Java には 4 つのアクセス修飾子キーワードがあり、それらは次のとおりです。

修飾子 説明
デフォルト 宣言はパッケージ内でのみ表示されます (パッケージ プライベート)
非公開 宣言はクラス内でのみ表示されます
保護 宣言はパッケージまたはすべてのサブクラス内で表示されます
公開 宣言はどこにでも表示されます

デフォルトのアクセス修飾子

クラス、メソッド、変数などのアクセス修飾子を明示的に指定しない場合、デフォルトでデフォルトのアクセス修飾子が考慮されます。たとえば、

package defaultPackage;
class Logger {
    void message(){
        System.out.println("This is a message");
    }
}

ここでは、ロガー クラスにはデフォルトのアクセス修飾子があります。そして、クラスは defaultPackage に属するすべてのクラスに表示されます パッケージ。ただし、Logger を使用しようとすると クラスが defaultPackage 以外の別のクラスにある場合、コンパイル エラーが発生します。


プライベート アクセス修飾子

変数とメソッドが宣言されている場合 private 、クラス外からアクセスすることはできません。たとえば、

class Data {
    // private variable
    private String name;
}

public class Main {
    public static void main(String[] main){

        // create an object of Data
        Data d = new Data();

        // access private variable and field from another class
        d.name = "Programiz";
    }
}

上記の例では、name という名前のプライベート変数を宣言しました。 display() という名前のプライベート メソッド .プログラムを実行すると、次のエラーが表示されます:

Main.java:18: error: name has private access in Data
        d.name = "Programiz";
         ^

プライベート変数と Data のプライベート メソッドにアクセスしようとしているため、エラーが生成されます。 Main のクラス クラス。

これらのプライベート変数にアクセスする必要がある場合はどうすればよいか疑問に思うかもしれません。この場合、ゲッターとセッターのメソッドを使用できます。たとえば、

class Data {
    private String name;

    // getter method
    public String getName() {
        return this.name;
    }
    // setter method
    public void setName(String name) {
        this.name= name;
    }
}
public class Main {
    public static void main(String[] main){
        Data d = new Data();

        // access the private variable using the getter and setter
        d.setName("Programiz");
        System.out.println(d.getName());
    }
}

出力 :

The name is Programiz

上記の例では、name という名前のプライベート変数があります。 .外部クラスから変数にアクセスするために、メソッドを使用しました:getName()setName() .これらのメソッドは、Java では getter および setter と呼ばれます。

ここでは、setter メソッド (setName()) を使用しました。 ) 変数と getter メソッドに値を代入します (getName() ) 変数にアクセスします。

this を使用しました setName() 内のキーワードを使用して、クラスの変数を参照します。このキーワードの詳細については、Java this Keyword をご覧ください。

注意 :Java では、クラスとインターフェースを private と宣言することはできません。ただし、ネストされたクラスは非公開として宣言できます。詳細については、Java のネストされた内部クラスを参照してください。


保護されたアクセス修飾子

メソッドとデータメンバーが宣言されている場合 protected 、同じパッケージ内およびサブクラスからアクセスできます。たとえば、

class Animal {
    // protected method
    protected void display() {
        System.out.println("I am an animal");
    }
}

class Dog extends Animal {
    public static void main(String[] args) {

        // create an object of Dog class
        Dog dog = new Dog();
         // access protected method
        dog.display();
    }
}

出力 :

I am an animal

上記の例では、display() という名前の保護されたメソッドがあります。 動物の中 クラス。 動物 クラスは Dog によって継承されます クラス。継承の詳細については、Java 継承にアクセスしてください。

次にオブジェクト dog を作成しました の クラス。オブジェクトを使用して、親クラスの保護されたメソッドにアクセスしようとしました。

保護されたメソッドは子クラスからアクセスできるため、Animal のメソッドにアクセスできます。 のクラス クラス。

注意 :クラスやインターフェースを宣言することはできません protected


パブリック アクセス修飾子

メソッド、変数、クラスなどを宣言する場合 public 、どこからでもアクセスできます。 public アクセス修飾子には、スコープの制限はありません。たとえば、

// Animal.java file
// public class
public class Animal {
    // public variable
    public int legCount;

    // public method
    public void display() {
        System.out.println("I am an animal.");
        System.out.println("I have " + legCount + " legs.");
    }
}

// Main.java
public class Main {
    public static void main( String[] args ) {
        // accessing the public class
        Animal animal = new Animal();

        // accessing the public variable
        animal.legCount = 4;
        // accessing the public method
        animal.display();
    }
}

出力 :

I am an animal.
I have 4 legs.

ここで、


1 つの図にまとめられたアクセス修飾子

<図>

アクセス修飾子は、主にカプセル化に使用されます。プログラムのどの部分がクラスのメンバーにアクセスできるかを制御するのに役立ちます。そのため、データの悪用を防ぐことができます。カプセル化の詳細については、Java カプセル化にアクセスしてください。


Java

  1. C# アクセス修飾子
  2. Java オペレーター
  3. Java コメント
  4. Java for-each ループ
  5. Java 文字列
  6. Java インターフェイス
  7. Java匿名クラス
  8. Java try-with-resources
  9. Java アノテーション
  10. Java アサーション
  11. Java ベクトル