Javaで説明されている4つのアクセス修飾子

アクセス修飾子は、属性、メソッド、またはクラスの前に配置され、それらへのアクセス方法を管理するためのキーワードです。これらは、変更されたデータを使用できるメソッド、クラス、またはパッケージを制限します。

アクセス修飾子は、可視性修飾子と呼ばれることもあります。これは、プログラムの特定の部分が、それらにアクセスしたい他のコンポーネントからどれだけ見えるかを説明しているという直感的な言い方です。

可視性修飾子を使用すると、プログラマーが特定のクラスにアクセスする方法を制限できます。これは実際には、オブジェクト指向プログラミングの主要な原則であるカプセル化を満たしています。

Javaで使用される4つのアクセス修飾子は次のとおりです。

デフォルト

修飾子を明示的に定義しない場合、Javaコンパイラーはデフォルトの可視性アクセスを使用します。このアクセスレベルでは、定義されたクラスと同じパッケージ内のクラスのみがその変数またはメソッドにアクセスできます。

関連: Javaでクラスを作成する方法を学ぶ

デフォルトの修飾子は、メンバーだけでなく、クラスにも適用されます。メンバーと同じ可視性制限をクラスに与えます。

デフォルトの修飾子は、package-privateとも呼ばれます。

デフォルトのアクセス修飾子を使用するには、修飾子なしでクラスメンバーを定義するだけです。

 class Person{
int age;
String name;
int jump(){}
}

パブリックモディファイア

この修飾子を使用すると、クラスのメンバーにすべてのパッケージでアクセスできます。簡単に言えば、どこからでもアクセスできます。 public修飾子は、最も制限の少ないレベルのアクセスを提供します。

public修飾子はクラスでも使用できることに注意することも重要です。

クラスまたはそのメンバーの前にpublicを付けるだけで、一般に公開されます。以下の例を参照してください。

 public class Person{
public int age;
public String name;
public int jump(){}
}

保護された修飾子

この修飾子を使用すると、クラスのメンバーにクラスとそのサブクラス内でアクセスできます。継承を通じてのみですが、パッケージの外部へのアクセスを提供できます。前の2つの修飾子とは異なり、 protectedはクラスのメンバーでのみ使用でき、クラス自体では使用できません。

使用方法については、以下のコードを参照してください。

 class Person{
protected int age;
protected String name;
protected int jump(){}
}

プライベート修飾子

この修飾子を使用すると、クラスのメンバーにクラス内でのみアクセスできます。保護されているのと同様に、privateもクラスのメンバーにのみ適用されます。

プライベートは最も厳密なレベルのアクセスであり、クラスメンバーが他のクラスに使用されないようにすることが完全に確実な場合にのみ使用する必要があります。たとえば、プライベート修飾子を使用してコンストラクターにアクセスしようとすると、コンパイル時エラーが発生します。

publicおよびprivateと同様に、この修飾子を使用するには、キーワードprivateを追加するだけです。

 class Person{
private int age;
private String name;
private int jump (){}
}

その他のJavaの考慮事項

この時点で、メソッドのオーバーライドに関して、これらの可視性修飾子をどのように管理するかを疑問視することが重要です。答えは、スーパークラスで定義されているレベルと同じかそれ以上のレベルの可視性を維持することです。

たとえば、親クラスが保護されている場合、オーバーライドするサブクラスでデフォルト修飾子またはプライベート修飾子を使用することはできません。

次の表は、各可視性修飾子のアクセスレベルをまとめたものです。これを使用して、アクセス修飾子に関する知識を深めることができます。

表から、クラスのメンバーはクラス内で常にアクセス可能であることに注意してください。残りの列は、上記ですでに読んだ内容を示しています。

クラス内でこれらのアクセス修飾子を組み合わせて使用​​できることに注意することが重要です。使用するものをどのように選択するかを決定するのは、コードの特定の部分にどれだけアクセスできるようにするかです。

選択プロセスは、最も制限の厳しいものからより制限の少ないものへと徐々に移行する必要があります。

Javaは単独でもかなりきれいですが、MySQLと組み合わせるとどうなりますか?可能性はあなた自身の創造性によってのみ制限されます。