java中public private protected default的區別

lonecloud發表於2016-05-08

1、public:public表明該資料成員、成員函式是對所有使用者開放的,所有使用者都可以直接進行呼叫

2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有財產神聖不可侵犯嘛,即便是子女,朋友,都不可以使用。

3、protected:protected對於子女、朋友來說,就是public的,可以自由使用,沒有任何限制,而對於其他的外部class,protected就變成private。

       作用域    當前類  同一package    子孫類   其他package

        public     √           √              √             √

        protected √          √             √              ×

        private    √           ×            ×              ×

例項:
demo.java

package study;

public class method {
	private int privateA;
	public  int publicA;
	protected int protectedA;
	int A;//初始的
	private void privateDemo() {
		
	}	
	public void publicDemo() {
		
	}	
	protected void protecteddemo() {
		
	}	
	void demo() {
		
	}
}

 Idemo.java測試子類訪問許可權

package study;

public class Idemo extends method{
	public void mydemo() {
		// TODO Auto-generated method stub
		super.privatedemo();//不能訪問父類的方法,由於定義的是private
		super.privateA;//不能訪問父類的域,由於定義的是private
		int a=super.protectedA;//public可以訪問
		super.publicDemo();//public 可以在子類進行訪問
		int a1=super.protectedA;//protected  可以在子類進行訪問
		super.protecteddemo();//protected  可以在子類進行訪問
		int a2=super.A;//預設可以在他的子類中訪問
		super.demo();//預設可以在他的子類中訪問
		
	}
}

 

相關文章