訪問權限修飾符簡述
1.類的訪問修飾符
public 最大訪問權限,本項目中的任何位置都可以訪問
默認不寫 :包級別的訪問權限,智能在同包中訪問
package com.qfedu.test2;//public修飾的類
public class A {public static void main(String[] args) {A a = new A();//本類中正常訪問B b = new B();//本類中正常訪問}
}
//修飾符默認的類
class B{}
package com.qfedu.test2;public class TestA {public static void main(String[] args) {//同包同項目可以訪問A a = new A();//同包中正常訪問B b = new B();}}
package com.qfedu.test3;import com.qfedu.test2.A;public class TestA {public static void main(String[] args) {//不同包,同項目 可以訪問A a = new A();}
}
package com.qfedu.test3;import com.qfedu.test2.A;public class TestB {public static void main(String[] args) {//此處錯誤,默認修飾符修飾的類,在不同包中,不可訪問
// B b = new B();A a = new A();//public修飾}
}
2.類成員的訪問修飾符
類成員包括屬性、方法和構造方法
- private : 本類中
- 默認不寫:本包 本類中
- protected:本包 本類 子類中
- public:本項目中
package com.qfedu.test4;
/*** 類成員的訪問修飾符* private :本類中* 默認不寫:本類 本包中* protected: 本類 本包 子類中* public: 本項目中* @author lizhenhao**/
public class C {private int x;int y;protected int z;public int s;private void m1() {System.out.println("私有的方法");}void m2() {System.out.println("默認修飾的方法");}protected void m3() {System.out.println("受保護的方法");}public void m4() {System.out.println("公開的方法");}public static void main(String[] args) {C c = new C();System.out.println(c.s);System.out.println(c.z);System.out.println(c.y);System.out.println(c.x);c.m1();c.m2();c.m3();c.m4();}
}
package com.qfedu.test4;
/*** private 修飾的方法和實例變量不可調用* @author lizhenhao**/
public class TestC {public static void main(String[] args) {C c = new C();System.out.println(c.s);System.out.println(c.y);System.out.println(c.z);c.m2();c.m3();c.m4();}
}
package com.qfedu.test5;import com.qfedu.test4.C;
/*** public 本項目中可以訪問* @author **/
public class TestC {public static void main(String[] args) {C c = new C();System.out.println(c.s);c.m4();}
}