(アクセス制御ブレークを使用して)カプセル化を達成するために:
Javaはそれらの詳細は、パッケージアクセス指定子を使用して制御する必要があり、それらの詳細を公開する必要があります。
アクセス制御文字の4種類があります:、民間デフォルト、保護、公共 、 オブジェクトのカプセル化を説明し、アクセス権は、これにより、安全性を向上させること、それらを介して、可能な限り低いに分散化することができます。
すべてのクラスのパンと同様の修飾
プライベート*の
デフォルト* *(表示は同じパッケージであるので、あなたが同じサブクラスのパッケージにアクセスすることができる理由)
保護* * *
公共* * * *
説明:
、唯一のあなたがあなた自身のクラス1、プライベートはプライベート表すアクセスすることはできません
何の修正記号2、デフォルトの手段を、同じクラスがパッケージにアクセスすることができます
3、保護を示す保護、クラスの同じパッケージや他のサブクラスパッケージをまた、訪問することができ
4を、公的開示は、すべてのパケットが全てのクラスがアクセスできる表し
注:。「クラス名を」。「実施例」アクセスモードまたはフォームに、特定の使用状況を参照して説明します。(一般的な使用の「インスタンス。」クラス名の形式では。一般的に静的メンバとメソッド)
コードは大文字です
package com.it.package1;
public class ClassOne {
private int privateProp;
int defaultProp;
protected int protectedProp;
public int publicProp;
void testSameClass(){
privateProp = 0;
defaultProp = 0;
protectedProp = 0;
publicProp = 0;
}
}
package com.it.package1;
public class ClassOneStatic {
private static int privateProp;
static int defaultProp;
static protected int protectedProp;
static public int publicProp;
void testSameClass(){
privateProp = 0;
defaultProp = 0;
protectedProp = 0;
publicProp = 0;
}
}
package com.it.package1;
public class ClassTwo{
void testdifferentClass() {
// new ClassOne().privateProp;
new ClassOne().defaultProp = 1;
new ClassOne().protectedProp = 1;
new ClassOne().publicProp = 1;
// ClassOneStatic.privateProp;
ClassOneStatic.defaultProp = 1;
ClassOneStatic.protectedProp = 1;
ClassOneStatic.publicProp = 1;
}
}
package com.it.package1;
public class ClassChild extends ClassOne{
void testChild() {
// privateProp = 1 ;
defaultProp = 1;
protectedProp = 1;
publicProp = 1;
}
}
package com.it.package2;
import com.it.package1.ClassOne;
import com.it.package1.ClassOneStatic;
public class ClassFour {
void testDifferentPackage(){
// new ClassOne().privateProp;
// new ClassOne().defaultProp = 1;
// new ClassOne().protectedProp = 1;
new ClassOne().publicProp = 1;
// ClassOneStatic.privateProp = 1;
// ClassOneStatic.defaultProp = 1;
// ClassOneStatic.protectedProp = 1;
ClassOneStatic.publicProp = 1;
}
}
package com.it.package2;
import com.it.package1.ClassOneStatic;
public class ClassChild extends ClassOneStatic {
void testdifferentPackageChild() {
// ClassOneStatic.privateProp = 1;
// ClassOneStatic.defaultProp = 1;
ClassOneStatic.protectedProp = 1;
ClassOneStatic.publicProp = 1;
}
}