详解java访问修饰符
详解java访问修饰符
为了防止初学者看到因为专业的术语而感觉晦涩难懂,我接下来尽量用生动比喻的说法来解释!
首先第一点,我们来讲讲什么叫修饰符!看看这个名称,想想他的意思。修饰符!修饰符!,就是用来修饰的一种符号!就好比说:一个美丽的女孩。这里美丽的是用来修饰女孩的,来说明这个女孩的特点!一把锋利的小刀,锋利的是来说明刀的特点的。所以java中的修饰符和上面是同一个道理,是用来说明java中的类,方法,和属性特点的一种符号!
上面说了,修饰符是用来说明java中的类,方法,和属性特点的一种符号!访问修饰符的含义就是专门用来控制自身被其他类或者方法访问的一种权限的修饰符。
举个例子:
比如说大熊猫,大熊猫是中国的国宝,那么外国人就不能拥有它,现在变成说大熊猫是湖南的省宝(暂且这么说),那么除了湖南以外的省都不能拥有它,当然其他国家也不能拥有它。现在再说大熊猫是长沙的市宝,那么除了长沙市,谁也不能拥有它,包括其他市,其他省,其他国家!!!
在java中是一个道理,有四个访问修饰符,public,protect, default ,private。
我们以权限范围从小到大的顺序说起
我会以上面的市,省,国家来做例子
private :用private修饰的类、类属变量及方法,只有本类可以访问,而包内包外的任何类均不能访问它。
用上面的例子来说,private修饰的大熊猫就属于一个市,只有这个市里面的人才能看到大熊猫,这个省里里的其他市,其他的省,其他的国家都是看不到大熊猫的
default:用default修饰的类、类属变量及方法,只有本包中的类和本类可以访问,而其他的包和其他包中的类均不能访问它。
就相当于,default修饰的大熊猫就属于一个省,省里的市都可以看到大熊猫。
protect:用protected修饰的类、类属变量及方法,包内的任何类及包外那些继承了该类的子类才能访问,
这个比较特殊,这样解释:protected修饰的大熊猫也是相当于一个省,省里的市都可以看到这个大熊猫,但是省外的市也可以看到大熊猫,但是省外的市要看这个大熊猫,
要有一个条件,这个条件是:省外的市要和拥有大熊猫的市有一个关系,这个关系是:省外的市,要属于拥有大熊猫的这个市(可能不太好解释,我的意思是,你们先不要拘泥与现实社会这个大框架中,就想着省外的那个市是属于拥有大熊猫的市的,只不过位置不在这个省里,而在外省而已),在这种情况下,省外的市也可以看到大熊猫
public:用public修饰的类、类属变量及方法,包内及包外的任何类(包括子类和普通类)均可以访问;这个好解释,大熊猫是属于全世界的,不管你是谁,都可以看到这个大熊猫!
第二次写博客,比喻的不太恰当,望谅解!