修饰符分为访问修饰符(决定访问权限)与非访问修饰符(修饰属性)两种。它可以修饰类、包的成员(变量和方法),他们的适用范围各不相同。
- 修饰符的种类:
- 访问修饰符:public(同一类、同一包中的类、子类、不同包中的类都可以访问;可修饰所有)、protected(同一类、同一包中的类、子类包含不同包中的子类都可以访问;可修饰变量与方法) 、default(同一类、同一包中的类可以访问;可修饰所有) 、private(同一类可以访问;可修饰变量与方法)
- 非访问修饰符:abstract(无法进行实例;可修饰方法与类) 、final (最终的;修饰所有)、throw
- 修饰符的适用范围
- 类的修饰符:public、default、abstract、final。同一类、同一包中的类、子类、不同包中的类都可以访问;default:同一类、同一包中的类可以访问;abstract:抽象类;final:没有子类;throw:不做讲解
- 变量的修饰符:四种访问修饰符、static、final。static修饰时会使变量变成静态变量,初始化时被赋值。final修饰时会使变量变成常量,需进行赋值。
- 方法的修饰符:与变量相同。statuc修饰时方法为静态方法,可通过类名直接调用;abstrct修饰的方法没有方法体即执行语句,且必须在抽象方法中。例 (public abstract void sleep();) ; final表示此方法不能被子类重写。
- 属性的修饰符:四种访问修饰符、static。
总结:
抽象类不一定有抽象方法,但有抽象方法的类一定是抽象类。
final方法一定没有子类,但有final方法的类不一定没有父类。
当有多种修饰符修饰同一物体时,效果为叠加效果,如private static foreach(),它为私有的、静态方法,其它类调用时可以通过该方法所属类.foreach()调用。
protected、private、static不能修饰类。类的修饰符只有四种,其中default可不用写,也就是说只能右以下4种形式出现:class、public class、abstract class、final class。