这是我参与8月更文挑战的第28天,活动详情查看:8月更文挑战
四种权限修饰符(public, protected, default, private)的权限大小 注意: default, 没有这个关键字, 它以为默认, 即什么也不加! 一般, 默认的可见性就是包可见性(package visibility).
本类 同一个包下(子类和无关类) 不同包下(子类) 不同包下(无关类) private Y default Y Y protected Y Y Y public Y Y Y Y 面向对象中类及其组成所使用的常见修饰符总结 修饰符: 权限修饰符: private, default, protected, public 状态修饰符: static, final 抽象修饰符: abstract
-
类: 权限修饰符:default,public 状态修饰符:final 抽象修饰符:abstract 用的最多的就是:public
-
成员变量: 权限修饰符:private,default,protected,public 状态修饰符:static,final 用的最多的就是:private
-
构造方法: 权限修饰符:private,default,protected,public 用的最多的就是:public
-
成员方法: 权限修饰符:private,default,protected,public 状态修饰符:static,final 抽象修饰符:abstract 用的最多的就是:public
-
除此以外的组合规则: 成员变量:public static final 成员方法: public static public abstract public final
相关注意点: abstract不能与以下关键字共存 private (当修饰类和成员方法时, 若抽象类里有抽象方法, 其应该被子类继承, 并且在子类里重写父类所有的抽象方法, 而被private修饰, 类就不能被继承, 成员方法就不能被访问) final (原因同上, 当final修饰类和成员方法时, 类就不能被继承, 成员方法就不能被重写) static (若用static修饰, 则只通过”类名.”就可直接调用抽象方法, 显而易见, 这样没有任何意义) 当一个类中所有的成员方法都是静态方法(全部加了static)时, 构造方法必须私有(加private). (例: 在java.lang中, Math类不用创建对象, 而直接调用其常量和静态方法 – Math.PI和Math.abs(a)) 总结 在面向对象中, 三大特性(封装, 继承, 多态)的理解尤为重要, 但同时理解这四种权限修饰关系, 对于谁能调用谁, 是否有访问权限等问题, 解决起来更得心应手