java中有四个权限,分别为private,protected,default,public,不写即为default,每个权限分别为如下表格:
private | default | protected | public | |
本类可访问 | 是 | 是 | 是 | 是 |
本包非本类可访问 | 否 | 是 | 是 | 是 |
非本包的子类可访问 | 否 | 否 | 是 | 是 |
非本包的类 | 否 | 否 | 否 | 是 |
另外类成员的权限不得大于类的权限,如果大于,以类的权限为准。即如下的一个类:
class Test{ public int i=0; public void fun() { System.out.println(i); } }
则类成员i和fun虽然定义的权限为public,但是由于类的权限为default,所以i,fun的权限仍为default。
通过对象访问类成员时,也要遵守权限,如下:
class Test{ public static void main(String[] args){ Myclass a=new Myclass(); a.fun1();//错误,因为fun1的权限为private a.fun2(); System.out.println(a.i1);//错误,因为i1的权限为private System.out.println(a.i2); } } class Myclass{ private int i1=0; int i2=0; private void fun1() { System.out.println("fun1()"); } void fun2() { System.out.println("fun2()"); } }
时间: 2024-11-06 21:07:33