Javaアクセス修飾子プライベート説明を区別するために、デフォルト、保護され、国民の

ここに画像を挿入説明(アクセス制御ブレークを使用して)カプセル化を達成するために:
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;
	}

}

公開された37元の記事 ウォン称賛29 ビュー10000 +

おすすめ

転載: blog.csdn.net/qq_42755868/article/details/104831340