オブジェクト指向パッケージ---
パッケージングは、オブジェクト指向の考え方の三つの特徴の一つです。
理解する:隠されたオブジェクトの属性と実装の詳細、パブリックアクセスの唯一の外部提供を。
利点:
- 変更分離
- 使いやすいです
- コードの再利用性を向上させます
- セキュリティを強化
パッケージの原則:
- コンテンツは、(プライベートなどの修飾子によって隠された)の両方に隠さを提供するまでの必要はありません。
- プロパティは、そのメソッドにパブリックアクセスを提供するために、隠されています
アクセス権の修飾子:
- 意味:あなたは、クラス、変数、メソッド、およびコンストラクタへのアクセスを保護するためにJavaでアクセス制御文字を使用することができます。
- アクセスは、次の表で説明することができます。
修飾子 | 現在のクラス | 同一包内 | 子孫クラス(同じパッケージ) | (異なるパッケージでの)派生クラス | 他のパッケージ |
---|---|---|---|---|---|
公衆 | と | と | と | と | と |
保護されました | と | と | と | Y / N(必須指定) | N |
デフォルト | と | と | と | N | N |
民間 | と | N | N | N | N |
- 私有財産について、そのメソッドへのパブリックアクセスを提供します。
例えば:
class Student {
private int age;
private String name;
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
}
public class StudentDemo {
public static void main(String[] args) {
Student s = new Student();
s.setAge(19);
s.setName("lyx");
System.out.println(s.getAge());
System.out.println(s.getName());
}
}
运行结果为:19
lyx
私たちは、民間の学生クラスの名前と年齢、上記のコード内の変数(学生部門でカプセル化された今後の年齢や名前)、彼らは直接、クラスの外(読み取りおよび変更)にアクセスすることはできませんでしました。しかし、我々は、我々はそれらへのアクセスを実現することができ、パブリックメソッドにセットを定義し、Studentクラスを取得します。
一つだけのパッケージプライベートな表現。
ロジックは、アクセスモードで文を決定するために追加することができますので、その理由は、そのパブリックメソッドへの外部アクセスを提供します。
データアクセス動作は、コードの堅牢性を向上させるために、行われます。
上記の例では、我々は、年齢の方法を変更することでsetAgeが、設定せずに、それをチェックする年齢の値は若干の誤差が生じる可能性がある場合、年齢の値は、合理的な値に設定する必要があります。このような[0100]の合理的な値の年齢として、私たちは次のように置き換え、このメソッドsetAgeをコーディングすることができます:
public void setAge(int age) {
if(0<=age && age<=100)
this.age = age;
else
System.out.println("age非法");
}
年齢の値が不正である場合は、上記の変更を加えた後、それが迅速になります。
参考:https://www.runoob.com/java/java-modifier-types.html#protected-desc