Java修饰符
Java中有四大修饰符:
私有的(private)
受保护的(protected)
公有的(public)
默认的(package/friendly/default)
private: 可以修饰成员变量,成员方法,构造方法,不能修饰类(此刻指的是外部类,内部类不加以考虑)。被private修饰的成员只能在其修饰的本类中访问,在其他类中不能调用,但是被private修饰的成员可以通过set和get方法向外界提供访问方式。
protected: 可以修饰成员变量,成员方法,构造方法,但不能修饰类(此处指的是外部类,内部类不加以考虑)。被protected修饰后,只能被同包下的其他类访问。如果不同包下的类要访问被protected修饰的成员,这个类必须是其子类。
publuc: 权限最大的修饰符,他可以修饰类,成员变量,成员方法,构造方法。被public修饰后,可以再任何一个类中,不管同不同包,任意使用。
package/friengly/default: 即不写任何关键字,它可以修饰类,成员变量,成员方法,构造方法。被默认权限修饰后,其只能被本类以及同包下的其他类访问。
红色代表不能,绿色代表可以
总结:
什么时候该用什么修饰符:从作用域来看,public能够使用所有的情况。但是大家在工作的时候,又不会真正全部都使用public,那么到底什么情况该用什么修饰符呢?
- 属性通常使用private封装起来。
- 方法一般使用public用于被调用。
- 会被子类继承的方法,通常使用protected。
- package用的不多,一般新手会用package,因为还不知道有修饰符这个东西。
然后是作用范围最小原则:
简单来说说,能用private就用private,不行就放大一级,用package,再不行就用protected,最后用public。这样就能把数据尽量的封装起来,没有必要露出来的,就不用露出来了。