访问权限修饰符简述
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();}
}