2

私はJavaに比較的慣れていないので、プライベートおよびパブリックのアクセス修飾子について読みました。私はそれを最もよく理解していないように感じるので、このトピックの混乱を完全に排除したいと思います。

変数のアクセス修飾子

私が間違っている場合は訂正してください。変数はデフォルトでパブリックです。アクセス修飾子がpublicに設定されているか、まったく設定されていない場合、同じプロジェクトの他のクラスが整数にアクセスしたり、整数を変更したりできます。それが外部に見えず、それが作成されたクラスの外部のクラスからアクセスできないよりもプライベートである場合。

クラスの修飾子にアクセスします

クラスのアクセス修飾子、私は完全には理解していないようです。私の理解では、同じクラスにないメソッドからプライベートメソッドを呼び出すと、機能しません。それが公開されるよりも公開されている場合はどうなりますか?

足りないものや正しく理解できないものはありますか?

この点で助けてくれてありがとう。

4

8 に答える 8

3

私が間違っている場合は訂正してください。変数はデフォルトでパブリックです。

あなたが間違っている。フィールドを意味すると仮定すると、デフォルトでは、フィールドには「パッケージ」アクセス権があり、明示的に表現することはできません。ローカル変数にはアクセス制御の概念がありません。いずれにせよ、ローカル変数はメソッドのコンテキスト内にのみ存在するため、他の場所から参照することはできません。

アクセス修飾子がpublicに設定されているか、まったく設定されていない場合、同じプロジェクトの他のクラスが整数にアクセスしたり、整数を変更したりできます。

公開に設定されている場合は、どのコードからでもアクセスできます。

デフォルト(パッケージ)アクセスの場合、同じパッケージ内のすべてのコードがアクセスできます。

クラスのアクセス修飾子、私は完全には理解していないようです。私の理解では、同じクラスにないメソッドからプライベートメソッドを呼び出すと、機能しません。それが公開されるよりも公開されている場合はどうなりますか?

そうです、そうです。

これらすべてに関するJavaチュートリアルを読み、詳細については言語仕様のセクション6.6を参照することをお勧めします。

于 2012-05-24T19:48:14.590 に答える
3

これは、このテーマに関する優れたドキュメントです。

4つのアクセスレベルがあります。

  1. private:そのクラス(子孫でさえも)のみがアクセスできます。
  2. 保護:そのクラスとその子孫、および同じパッケージ内のクラスのみがアクセスできます。
  3. package-private(指定子なし)-同じパッケージ内のクラスのみがアクセスできます-同じパッケージ内にないサブクラスでもアクセスできません。
  4. public:すべてにアクセスできます。

クラスのメンバー変数とメソッドの両方について、デフォルトのアクセスはパッケージプライベートです。

于 2012-05-24T19:50:57.640 に答える
1

4つの修飾子に関する情報は、オラクルのWebサイトにあります。

修飾子を指定しない場合、デフォルトであると言われます。つまり、同じパッケージ内のすべてのコードのみが修飾子にアクセスできます。

publicに設定されている場合、任意のパッケージのすべてのコードがアクセスできます。

于 2012-05-24T19:50:14.420 に答える
1

実際、Javaには、プライベート、パブリック、プロテクト、パッケージ固有の4つの異なるアクセス修飾子があります。「私が間違っている場合は訂正してください。変数はデフォルトでパブリックです」-別の方法で宣言されていない場合、変数はパッケージ関連のアクセス権を持っています。publicに設定されている場合は、元のパッケージの外部でも他のクラスによって変更できます。このWebサイト(http://javapapers.com/core-java/access-modifiers-in-java-explain/)は、役立つヒントを提供します。実際、カプセル化などのOOの概念についてもう少し読んだら、非常に簡単です。次に、アクセス修飾子の目的を理解します(データの整合性を確保するため)。

于 2012-05-24T19:50:25.443 に答える
0

アクセス修飾子:

  • 公開-{プロジェクトのどこからでもアクセスできます}

    プライベート-{クラス内でのみアクセスできます}

    保護-{パッケージおよびサブクラス内でアクセスできます}

    デフォルト-{パッケージ内でアクセスできます}

非アクセス修飾子:

  • 静的-{クラス変数とメソッドを作成するため}

    Final-{ファイナライズされたクラス、変数、メソッドを作成するため}

    抽象-{抽象メソッドとクラスを作成するため}

    同期-{スレッドの場合}

詳細については、このリンクをたどってください

于 2014-04-21T05:15:33.840 に答える
0

Javaには、クラス、変数、メソッド、およびコンストラクターのアクセスレベルを設定するための多数のアクセス修飾子が用意されています。4つのアクセスレベルは次のとおりです。

デフォルト:パッケージに表示されます。修飾子は必要ありません。

プライベート:クラスにのみ表示されます。

パブリック:世界に見える。すべてのクラスとパッケージ。

保護:パッケージとすべてのサブクラスに表示されます。

プログラマーがアクセス修飾子を指定しない場合は、デフォルトのアクセス修飾子が使用されます。

于 2014-04-21T05:49:36.057 に答える
0

privateおよびpublicjavaaccess specifiers.in java、private access specifiersは、access.privateを指定します。これは、所属するファミリのみを使用できる独自のファミリプロパティのようなものです。つまり、クラス内でメソッドと変数を使用できます。publicは政府の資産のようなもので、トークンを必要とせずにすべての人が資産にアクセスできることを意味します

于 2015-08-17T10:08:28.127 に答える
0

プライベートおよびパブリックJavaアクセス指定子javaでは、プライベートアクセス指定子はアクセスを指定します。

privateは、所属するファミリのみを使用できる独自のファミリプロパティのようなものです。つまり、クラス内で、メソッドと変数を使用できます。

publicは政府の資産のようなもので、トークンを必要とせずにすべての人が資産にアクセスできることを意味します

于 2015-08-17T10:49:41.723 に答える