4つの権限修飾子をテストします
シリコンバレーはまだ記事の
内容が以前の内容から選択され ていることは完全には説明されていません。今度 はjava4パーミッション修飾子 へのリンクを作成し ます。
プライベートテスト
プライベートはクラスカプセル化の重要な表現です。Javaでは、プライベートメソッドとプロパティはクラス内でのみ呼び出すことができ
ます。最初にcom.atguigu.java2パッケージでOrderクラスを作成します。
package com.atguigu.java2;
public class Order {
private int orderPrivate;
int orderDefault;
protected int orderProtected;
public int orderPublic;
private void methodPrivate(){
orderPrivate = 1;
orderDefault = 2;
orderProtected = 3;
orderPublic =4;
}
void methodDefault(){
orderPrivate = 1;
orderDefault = 2;
orderProtected = 3;
orderPublic =4;
}
protected void methodProtected(){
orderPrivate = 1;
orderDefault = 2;
orderProtected = 3;
orderPublic =4;
}
public void methodPublic(){
orderPrivate = 1;
orderDefault = 2;
orderProtected = 3;
orderPublic =4;
}
}
同じパッケージにOrderTestクラスを作成します
package com.atguigu.java2;
public class OrderTest {
public static void main(String[] args) {
Order order = new Order();
order.orderDefault = 1;
order.orderProtected =2;
order.orderpublic =3;
order.methodDefault();
order.methodProtected();
order.methodPublic();
// order.methodPrivate();
// order.orderPrivate();
}
}
コメントアウトされた部分は表示されない部分であり、システムはカプセル化によるエラーを報告します。
テスト保護され、デフォルト
Protectedは、さまざまなパッケージのサブクラスで使用でき、同じパッケージでも使用できます。ここでは、主にさまざまなパッケージのサブクラスをテストし
てcom.atguigu.java3パッケージを作成し、パッケージにSubOrderクラスを作成します。継承com.atguigu.java2パッケージのOrderクラスから取得するため、インポートする必要があります。コードは以下のように表示されます
package com.atguigu.java3;
import com.atguigu.java2.Order;
public class SubOrder extends Order {
public void method(){
orderProtected = 1;
orderPublic =2;
methodProtected();
methodPublic();
// orderDefault =3;
// orderPrivate =4;
//
// methodDefault();
// methodPrivate();
}
}
コメントアウトされた部分は非表示部分です。Protectedは、さまざまなパッケージでの継承関係を反映しています。継承の範囲を拡張するには、保護された修飾子が必要です。
これは別のパッケージであるため、デフォルトの属性とデフォルトのメソッドは、同じパッケージにのみ適用されるため、適用できません。
公開テスト
publicの適用範囲はプロジェクト全体ですが、パッケージの下にある他のパッケージのクラスをインポートするには、importキーワードを使用する必要があります。これはショートカットctrl + shift + oで、importキーワードを自動的に追加できます。
package com.atguigu.java3;
import com.atguigu.java2.Order;
public class OrderTest {
public static void main(String[] args) {
Order order = new Order();//ctrl + shift + o能够快速导入包
order.orderPublic = 1;
order.methodPublic();
// order.orderPrivate = 2;
// order.orderDefault =3;
// order.orderProtected = 4;
//
// order.methodPrivate();
// order.methodDefault();
// order.methodProtected();
}
}
同様に、コメント部分は表示されません。