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()");
}
}本文出自 “11114468” 博客,请务必保留此出处http://11124468.blog.51cto.com/11114468/1735676
原文:http://11124468.blog.51cto.com/11114468/1735676