Java 言語のアクセス修飾子

PHPz
リリース: 2024-08-24 06:39:02
オリジナル
1036 人が閲覧しました

Modificadores de acesso da linguagem Java

修飾子の種類:

  • public: 他のクラスのメソッドを含む、任意のプログラム コードによるクラスのメンバーへのアクセスを許可します。
  • private: クラス自体内のメンバーのアクセスを制限し、他のクラスのメソッドがメンバーに直接アクセスできないようにします。
  • 保護: 継承で使用されます。これについては第 8 章で説明します。
  • デフォルトのアクセス: 修飾子が使用されない場合、パッケージが関係する場合を除き、アクセスは public と同じになります。

修飾子の例:
メンバー宣言で public と private を使用する方法の例:

  • パブリック文字列 errMsg;
  • プライベートアカウント残高 bal;
  • private boolean isError(byte status) { // ... }

実践的なデモンストレーション:
クラス内のアクセス制御:

  • MyClass の alpha などのプライベート メンバーには、クラス自体のメソッドからのみアクセスできます。
  • アクセサー メソッド (getAlpha() および setAlpha()) を介したパブリック メソッドによるプライベート メンバーへのアクセス。
  • 別のクラスのプライベート メンバーに直接アクセスしようとすると、コンパイル エラーが発生します。
class MyClass {
    private int alpha; // acesso privado
    public int beta;   // acesso público
    int gamma;         // acesso padrão (equivalente a public neste contexto)

    // Métodos para acessar alpha
    void setAlpha(int a) {
        alpha = a;
    }

    int getAlpha() {
        return alpha;
    }
}

ログイン後にコピー

使用例: AccessDemo.java クラス

結果:

  • プライベート メンバー alpha へのアクセスは、パブリック メソッド setAlpha() および getAlpha() を介してのみ実行できます。
  • MyClass クラス外の alpha への直接アクセスは禁止されており、コンパイル エラーが発生します。

例: FailSoftArray:

  • 「耐障害性」配列を実装します。配列はプライベート メンバーとしてカプセル化され、パブリック メソッドによってのみアクセスされます。
  • カプセル化: 配列を範囲外のアクセスから保護し、実行時例外を防ぎます。
  • プライベートメンバー: a、errval、indexOK() はプライベートであり、配列の整合性を保護します。
  • パブリック メンバー: 長さはパブリックであり、Java の標準配列の実装と同様に、配列サイズをクエリできます。
  • パブリック メソッド: put() と get() は、配列への値の格納と取得に使用され、アクセスを安全に制御します。

結論:
アクセス制御は、オブジェクト指向プログラミングを成功させるために重要であり、特に継承を扱い、データの整合性を確保する場合に重要です。

結果:
「耐障害性」配列により、範囲外のインデックスにアクセスしようとしたときの実行時エラーが防止されます。
配列要素へのアクセスは、パブリック メソッド get() および put() を介して安全に行われ、制限チェックが行われます。
プログラムはサイレント障害を表示し、インデックスが範囲外になった場合に障害を明示的に処理します。
これらの例は、Java アクセス修飾子 (パブリック、プライベート、デフォルト アクセス) を適用してクラスのメンバーへのアクセスを制御し、データの整合性とセキュリティを確保する方法を示しています。

以上がJava 言語のアクセス修飾子の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート