Java アクセス許可の概要と理解

巴扎黑
リリース: 2017-07-17 17:59:58
オリジナル
1463 人が閲覧しました

1. アクセス権とは何ですか?

クラス内のグローバル変数とメソッドの可視スコープ、つまり、オブジェクト参照を通じて表示できるスコープ。

2. 権限修飾子の表示範囲

√変数またはメソッドがクラスから見えないからといって、その変数またはメソッドがクラス B に現れないというわけではありませんが、クラス B で直接公開することはできません。パブリックまたはプロテクトを通じて間接的に公開できます。 type メソッド参照が間接的に表示されます。
public protected private
パック範囲 ×
他のパッケージもできます
× 3. 可視性の理解 変数またはメソッドは別のクラス B から可視です。これは、変数またはメソッドがオブジェクト参照を通じて B に直接公開できることを意味します。逆も同様です。不可視とは、変数またはメソッドがオブジェクト参照を通じて直接アクセスできないことを意味します。クラスBで。

package com.javase.temp;import org.junit.Test;public class TempTest {private String str = new String("abc");

    @Testpublic void printStr() {
        System.out.println(this.str);
    }
}
ログイン後にコピー

TempTest クラスにはメンバー変数 str があることは明らかですが、これはプライベート型であり、他のクラスからは見えません。つまり、この変数はオブジェクト参照を通じて他のクラスに現れることができません。他のクラスに間接的に表示される printStr メソッドを呼び出すことで呼び出すことができます。

package com.javase.temp;import org.junit.Test;public class TempTest01 {

    @Testpublic void test01() {
        TempTest obj = new TempTest();
        obj.printStr();//通过TempTest类型的public类型的方法间接访问了private类型的变量,在访问时不知道private类型变量的情况    }
}
ログイン後にコピー

出力:

TempTestオブジェクトobjのメソッドprintStrがTempTest01クラスで呼び出され、プライベート変数strの値が出力されます。 str は TempTest01 では直接公開されませんが、TempTest のメソッド printStr で直接公開され、TempTest ではメソッド printStr が直接公開されるため、TempTest では間接的に str が公開されます。

TempTest01にはTempTestのプライベート型変数の値が出力されますが、この出力はランダムであり、TempTest01は出力結果が変数strからのものであることを知る由もなく、意味のない出力となります。

外部から直接アクセスされないように設計された変数は、通常、この種の操作の中間プロセスとして使用され、他の目に見える変数やメソッドを支援します。

以上がJava アクセス許可の概要と理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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