ホームページ  >  記事  >  Java  >  Java 関数オーバーロード メカニズムでサポートされるメソッド アクセス制御レベルは何ですか?

Java 関数オーバーロード メカニズムでサポートされるメソッド アクセス制御レベルは何ですか?

王林
王林オリジナル
2024-04-25 21:12:01685ブラウズ

Java 関数のオーバーロードを使用すると、シグネチャは異なるが同じ名前を持つ関数を作成できます。可視性は、プライベート、パッケージ レベルのプライベート、プロテクト、パブリックをサポートするアクセス制御レベルによって制御されます。たとえば、calculateArea() 関数をオーバーロードして、circle または square 引数を受け入れ、アクセス制御レベルに応じてさまざまな場所からアクセスできます。

Java 函数重载机制支持的方法访问控制级别有哪些?

Java 関数のオーバーロードのアクセス制御レベル

Java での関数のオーバーロードを使用すると、同じ名前で異なる複数の関数を定義できます。署名機能。これらの関数は、異なるパラメーターの型、パラメーターの数、戻り値の型を持つことができます。関数のオーバーロードでは、アクセス制御レベルによって、さまざまなパッケージおよびクラスに対するオーバーロードされたメソッドのさまざまなバージョンの可視性が決まります。

Java 関数のオーバーロードによってサポートされるアクセス制御レベル

Java 言語は、次のアクセス制御レベルをサポートします:

  • private ) : 定義されているクラス内からのみアクセスできます。
  • Package-private (package-private): それらを含むパッケージ内のクラスからのみアクセスできます。
  • Protected: クラスと、それらを含むパッケージ内の派生クラスからのみアクセスできます。
  • Public (public): どのクラスからもアクセスできます。

実用的なケース

オーバーロードされた calculateArea() 関数が形状 (円または円) に基づいて値を受け入れる次の例を考えてみましょう。 square) 異なるパラメーター:

public class ShapeCalculator {

    public double calculateArea(Circle circle) {
        return Math.PI * circle.getRadius() * circle.getRadius();
    }

    public double calculateArea(Square square) {
        return square.getWidth() * square.getWidth();
    }
}

この例では、calculateArea() 関数の 2 つのバージョンを宣言します:

  • calculateArea(Circle Circle ) 円形のオブジェクトをパラメータとして受け取り、その円の面積を返します。
  • calculateArea(Square square) 正方形のオブジェクトをパラメータとして受け取り、その正方形の面積を返します。

calculateArea() 関数の両方のバージョンは、public として宣言されているため、どのクラスからでもアクセスできます。したがって、これらの関数は次のいずれかの場所で使用できます。

  • 同じパッケージ内のクラス
  • 別のパッケージ内のクラス
  • メイン メソッドから

アクセス制御レベルは、オーバーロードされたメソッドのさまざまなバージョンをオーバーライドしたり書き換えたりする場合にも重要であることに注意してください。たとえば、サブクラスでは、同じまたはより幅広いアクセス制御レベルを持つ親クラスのメソッドのみをオーバーライドできます。

以上がJava 関数オーバーロード メカニズムでサポートされるメソッド アクセス制御レベルは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。