Javaのアクセス修飾子:あなたが知る必要があるすべて



この記事は、Javaのアクセス修飾子とは何かを理解し、パブリック、プライベート、保護、デフォルトなどのさまざまなタイプについて学習するのに役立ちます。

Javaのアクセス修飾子は、クラス、変数メソッド、およびコンストラクターのアクセスレベルを指定するために使用されます。の値を更新するのに役立ちます 。彼らはまたとして知られています 可視性の編集。 このブログの媒体を通して、私はあなたがアクセス修飾子の重要性が何であるかを理解するのを手伝います 。

次の順序でトピックを取り上げます。





最初のトピックから始めましょう。

アクセス修飾子とは何ですか?



あなたは出くわしたかもしれません 公衆民間 そして 保護 練習中のキーワード 、これらはアクセス修飾子と呼ばれます。名前が示すように、Javaのアクセス修飾子は、クラス、コンストラクター、変数、メソッド、またはデータメンバーのスコープを制限するのに役立ちます。

アクセス修飾子は、クラス、コンストラクターに対して個別に指定できますフィールド、およびメソッド。それらはまた呼ばれます Javaアクセス指定子 、しかし正しい名前は Javaアクセス修飾子

それでは、Javaのさまざまなタイプのアクセス修飾子について詳しく見ていきましょう。



アクセス修飾子の種類

には4つのアクセス修飾子キーワードがあります そして彼らは:

  • デフォルトのアクセス修飾子
  • プライベートアクセス修飾子
  • パブリックアクセス修飾子
  • 保護されたアクセス修飾子

それぞれについて詳しく学びましょう。

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

特定のクラス、メソッド、またはデータメンバーにアクセス修飾子が指定されていない場合、 デフォルト アクセス編集。

デートメンバー、 または、入口修飾子を使用して宣言されていないメソッドには、同様のバンドル内でのみアクセスできるデフォルトの修飾子があります。それクラス、フィールド、メソッドなどのアクセス修飾子を明示的に宣言しないことを意味します。

例:

package p1 //クラスコースにはデフォルトのアクセス修飾子クラスCourse {void display(){System.out.println( 'Hello World!')}}があります

次に、次のタイプのプライベートアクセス修飾子に移りましょう。

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

人工知能におけるファジィ論理
  • プライベートとして宣言されたメソッドまたはデータメンバーは、それらが宣言されたクラス内でのみアクセスできます。
  • トップレベルのクラスまたはインターフェイスは、次の事実に照らしてプライベートとして宣言することはできません。
    • プライベートは「 囲んでいるクラス内に表示されます '。
    • 保護は「 j 囲んでいるクラスとサブクラス内で目立つ必要があります '。
  • クラスが持っている場合プライベートコンストラクタ その場合、クラスの外部からそのクラスのオブジェクトを作成することはできません。
  • クラスをマークすることはできません プライベートアクセス修飾子
  • プライベートアクセス修飾子を使用してクラスを示すと、別のクラスがそのクラスに到達できないことを意味します。これは一般的に、想像力の範囲でクラスを利用できないことを意味します。このように、プライベートアクセス修飾子はクラスを考慮しません。

注意 :クラスまたはインターフェイスをプライベートとして宣言することはできません。

構文:

public class Clock {private long time = 0}

このプライベートアクセス修飾子について明確なアイデアを得るには、例を見てください。

例:

package p class A {private void display(){System.out.println( 'Edureka')}} class B {public static void main(String args []){A obj = new A()//プライベートにアクセスしようとしています別のクラスのメソッドobj.display()}}

このプログラムの出力は次のとおりです。

エラー:display()はAでプライベートアクセスを持っています

obj.display()

プライベートアクセス修飾子を使用して明確になっていることを願っています。次に、次のタイプのパブリックアクセス修飾子に移りましょう。

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

  • パブリックアクセス修飾子は、キーワードを使用して指定されます 公衆。
  • パブリックアクセス修飾子は、他のすべてのアクセス修飾子の中で広い範囲を持っています。
  • 、として宣言されているメソッドまたはデータメンバー 公衆 です どこからでもアクセス可能 プログラム。公開データメンバーの範囲に制限はありません。

構文:

package edureka.co public class PublicClassDemo {//ここでは修飾子については触れなかったので、デフォルトの修飾子として機能しますpublic int myMethod(int x){return x}}

ここで、例を見て、このパブリックアクセス修飾子について明確に理解してください。

例:

パッケージp1public class A {public void display(){System.out.println( 'edureka!')}}
パッケージp2importp1。*クラスB {public static void main(String args []){A obj = new A obj.display()}}

出力:edureka!

これは、Javaのパブリックアクセス修飾子に関するすべてです。

Javaの次のアクセス修飾子である保護されたアクセス修飾子に進みましょう。

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

  • 保護されたアクセス修飾子は、キーワードを使用して指定されます 保護
  • 保護されていると宣言されたメソッドまたはデータメンバーは、同じパッケージまたは別のパッケージのサブクラス内でアクセスできます。
  • 保護されたメンバーには、子クラスまたは派生クラスでのみアクセスできます。

構文:

パッケージpackageFourProtectedパブリッククラスProtectedClassFour {protected int myMethod(int a){return a}}

例を見てみましょう。

例:

spackage p1 //クラスAパブリッククラスA {protected void display(){System.out.println( 'Java認定トレーニング')}}
package p2 importp1。* //パッケージp1内のすべてのクラスをインポートします//クラスBはAのサブクラスですクラスBはAを拡張します| {public static void main(String args []){B obj = new B()obj.display()}}

出力-Javaのアクセス修飾子-Edureka

これは、Javaのアクセス修飾子の下にあるさまざまなメソッドについて知っておく必要があるすべてです。次のトピックに進みましょう。

メソッドをオーバーライドするアクセス修飾子

いずれかのメソッドをオーバーライドする場合は、サブクラスで宣言されているオーバーライドされたメソッドが制限的であってはなりません。

以下の例を見てください。

Javaのパッケージとは
class A {protected void msg(){System.out.println( 'Hello java')}} public class Simple extends A {void msg(){System.out.println( 'Hello java')} // CTError public static void main(String args []){Simple obj = new Simple()obj.msg()}}

デフォルトの修飾子は、保護されているよりも制限が厳しいです。これが、コンパイル時エラーが発生する理由です。

アクセス制御と継承

  • あるクラスのサブクラスを作成する場合、そのサブクラスのメソッドには、スーパークラスよりもアクセスしにくいアクセス修飾子を割り当てることはできません。
  • たとえば、スーパークラスのメソッドが 公衆 次に、サブクラスでもパブリックにする必要があります。スーパークラスのメソッドが 保護された、 次に、指定されたサブクラスで保護またはパブリックのいずれかである必要があります。
  • privateとして宣言されたメソッドは、まったく継承されません。

これで、この記事の終わりになります。 JavaのAccess修飾子について。このチュートリアルで共有されているすべてのことを明確に理解してください。

できるだけ練習し、経験を元に戻してください。

「Javaのアクセス修飾子」に関するこの記事が関連していると感じた場合は、 25万人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社が世界中に広がっています。 私たちはあなたの旅のすべてのステップであなたを助けるためにここにいます、このJavaインタビューの質問に加えてなるために、私たちはJava開発者になりたい学生と専門家のために設計されたカリキュラムを考え出します。このコースは、Javaプログラミングをすぐに開始できるように設計されており、HibernateやSpringなどのさまざまなJavaフレームワークに加えて、コアと高度なJavaの両方の概念についてトレーニングします。

ご不明な点がございましたら、「Javaのアクセス修飾子」のコメントセクションでお気軽にご質問ください。私たちのチームが喜んでお答えします。