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