1. 四大权限修饰符
public,private,default,protected是java的四大修饰符,下面分别主要介绍四者之间的区别:
1.1 public(公共的)
public是权限最大的修饰符,他可以修饰类,成员变量,成员方法,构造方法。被public修饰后,
可以再任何一个类中,不管同不同包,任意使用
。
1.2 private(私有的)
private可以修饰成员变量,成员方法,构造方法,不能修饰类(此刻指的是外部类,内部类不加以考虑)。被private修饰的成员
只能在其修饰的本类中访问
,在其他类中不能调用,但是被private修饰的成员可以通过set和get方法向外界提供访问方式。
1.3 default(默认的)
protected可以修饰成员变量,成员方法,构造方法,但不能修饰类(此处指的是外部类,内部类不加以考虑)。
被protected修饰后,只能被同包下的其他类访问。如果不同包下的类要访问被protected修饰的成员,这个类必须是其子类。
1.5 作用范围:
|
同一个类
|
同一个包
|
不同包的子类
|
不同包的非子类
|
pubulic(公共的)
|
√
|
√
|
√
|
√
|
protected(受保护的)
|
√
|
√
|
√
|
|
default(默认的)
|
√
|
√
|
|
|
private(私有的)
|
√
|
|
|
|
1.6 总结
从作用域来看,public能够使用所有的情况。但是大家在工作的时候,又不会真正全部都使用public,那么到底什么情况该用什么修饰符呢?
-
属性
通常使用private封装起来。
-
方法
一般使用public用于被调用。
-
会被子类继承的方法,通常使用protected。
-
default用的不多,一般新手会用default,因为还不知道有修饰符这个东西。
简单说,能用private就用private,不行就放大一级,用package(default),再不行就用protected,最后用public。这样就能把数据尽量的封装起来,没有必要露出来的,就不用露出来了。