权限修饰符
什么是权限修饰符?
- 就是用来限制类中的成员(成员变量、成员方法、构造器、代码块……)能够被访问的范围
权限修饰符有几种?各自的作用是什么?
修饰符 | 在本类中 | 在同一个包下的其它类里 | 在任意包下的子类里 | 在任意包下的任意类里 |
---|---|---|---|---|
private | √ | |||
缺省 | √ | √ | ||
protected | √ | √ | √ | |
public | √ | √ | √ | √ |
private<缺省<protected<public
- 实例代码
package com.zzfeng.d9_modifer;
public class Fu {
// 私有:只能在本类中访问
private void privateMethod() {
System.out.println("私有方法");
}
// 缺省:本类、同一个包下的类
void method() {
System.out.println("默认方法");
}
// protected:本类,同一个包下的类,任意包下的子类
protected void protectedMethod() {
System.out.println("protected方法");
}
// public:本类,同一个包下的类,任意包下的子类,任意包下任意类
public void publicMethod() {
System.out.println("public方法");
}
// 在本类中可以访问所有修饰的类
public void test() {
privateMethod();
method();
protectedMethod();
publicMethod();
}
}
package com.zzfeng.d9_modifer;
public class Test {
public static void main(String[] args) {
// 在同一个包下的其它类里可以访问除private外修饰的其它类
Fu fu = new Fu();
fu.method();
fu.protectedMethod();
fu.publicMethod();
}
}
package com.zzfeng.d10_modifer;
import com.zzfeng.d9_modifer.Fu;
public class son extends Fu {
public void test() {
// 子类son继承了父类Fu
// 在任意包下的子类里可以访问protected和public修饰的类
protectedMethod();
publicMethod();
}
}
package com.zzfeng.d10_modifer;
import com.zzfeng.d9_modifer.Fu;
public class Demo {
public static void main(String[] args) {
// 在任意包下的任意类里只能访问public修饰的类
Fu fu = new Fu();
fu.publicMethod();
}
}