ホームページ  >  記事  >  类库下载  >  Javaの4つのアクセス修飾子の違いと全体の処理を詳しく解説

Javaの4つのアクセス修飾子の違いと全体の処理を詳しく解説

高洛峰
高洛峰オリジナル
2016-10-14 13:57:591866ブラウズ

クライアント プログラマー: アプリケーションでデータ型を使用するクラス コンシューマー。彼の目標は、迅速なアプリケーション開発のためにさまざまなクラスを収集することです。

クラス作成者: クラスの構築を目的として新しいデータ型を作成するプログラマー。

アクセス制御が存在する理由: a. クライアントプログラマが触れるべきではない部分に触れないようにするため b. ライブラリ設計者がクライアントプログラマへの影響を心配することなくクラスの内部動作メソッドを変更できるようにするため

キーワードは次の 4 つです。 public、protected、default、private (定義された内容を誰がすぐに使用できるかを決定します)

適用範囲

アクセス権限 クラス パッケージ サブクラス その他のパッケージ

∨ ∨ × × (パッケージのアクセス権、で利用可能ですパッケージ全体にアクセス)

型作成者と型の内部メソッド以外はアクセスできないulate要素]

テストクラス)

package com.zq.demo.test1;
/**
 * 类内
 * @author Administrator
 */
public class Person {
    public String uname = "王五";
    
    public void introduceMyself(){                
        System.out.println(uname);             
    }
}

package com.zq.demo.test1;
//同一个包
public class Student {
        Person p =  new Person();
    public void test(){
        System.out.println(p.uname);
    }
}
package com.zq.demo.test1;
//子类
public class Teacher extends Person{
    public int age;
    Person p = new Person();
    public void test1(){
        System.out.println(p.uname);
    }
}
package com.zq.demo.test2;
//不同包
import com.zq.demo.test1.Person;

public class Parents {
    public String uname = "haha";
    Person p = new Person();
    public void test2(){
        System.out.println(p.uname);
    }
}

テストクラスの結果はpublicにアクセスできることを示しています上記では

同じ 4 つのクラスを使用して protected をテストします

Javaの4つのアクセス修飾子の違いと全体の処理を詳しく解説 Person の uanme を protected に変更した後、クラス Parents がエラーを報告しました フィールド Person .uname が表示されません (クロスパッケージできないことを示します)

他の 3 つは影響を与えません

クロスパッケージを除き、他のものはアクセスに影響を与えないことを説明します

Javaの4つのアクセス修飾子の違いと全体の処理を詳しく解説private

このクラス内でのみアクセス可能ですが、Personal の助けを借りて set メソッドと get メソッドに関連しますクラス内の uname にアクセス可能

Javaの4つのアクセス修飾子の違いと全体の処理を詳しく解説

Javaの4つのアクセス修飾子の違いと全体の処理を詳しく解説

default

Javaの4つのアクセス修飾子の違いと全体の処理を詳しく解説

テスト結果説明: このパッケージ内でのみアクセス可能、他のパッケージでは継承関係であってもアクセスできません。

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