众所周知,Java一共提供了4种访问修饰符,分别用来控制属性和方法的访问权限
下面我们来看一下4种修饰符的访问权限即范围
-
公开级别,用 public 修饰,对外公开。
-
受保护的,用 protected 修饰,对子类和同一个包公开。
-
默认的,没有修饰符,对同一个包公开。
-
受保护的,用 private 修饰,对同一个类公开。
首先我们先测试一下在同一个类中,哪些修饰符可以访问到
图中看出在A类中,我们使用了四种修饰符修饰了不同的属性,而在同一个类中这四个属性是都可以访问到的
接下来再来测试一下同一个包下,哪些修饰符可以访问到
在one这个包下我们在新建一个B类来访问A类中四个不同修饰的属性,看看可以访问哪些
以上可以看到,在同一个包下面我们只能访问到 public、protected、默认,而私有的修饰是不能访问到的。
接下来再来测试一下子类中,哪些修饰符可以访问到
如图所见C类继承了A类,但它能访问到的权限只有 public 和 protected,不能在访问默认和 private 。
附加:默认修饰符在同一个包下面子类是可以访问,但在不同包 子类是访问不到的。
最后我们再来测试一下不同包下,哪些修饰符可以访问到
图中看到,我们在two这个包下创建了D类,去访问one包中的A,但我们只能访问到 public 修饰的属性,其他三种是访问不到的。
最后我们总结一下,当然这里只是使用属性来演示操作,修饰符可以用来修饰类中的属性和方法以及类。但修饰类只能使用 public 和默认修饰符,且一个类中只能有一个 public 类,也遵循上述访问权限特点。成员方法的访问权限是和属性一样的。