梦蓝樱飞(一点一滴, 记录个人成长之路)

时光荏苒,祝愿勿忘曾经的初心 && 活在当下,一定做好现在的事情

Java四种权限修饰符(public, default, protected, private)的用法和对比

四种权限修饰符(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

1. 类:
    权限修饰符:default,public
    状态修饰符:final
    抽象修饰符:abstract
    用的最多的就是:public

2. 成员变量:
    权限修饰符:private,default,protected,public
    状态修饰符:static,final
    用的最多的就是:private

3. 构造方法:
    权限修饰符:private,default,protected,public
    用的最多的就是:public

4. 成员方法:
    权限修饰符:private,default,protected,public
    状态修饰符:static,final
    抽象修饰符:abstract
    用的最多的就是:public

5. 除此以外的组合规则:
    成员变量:public static final
    成员方法:
        public static
        public abstract
        public final

相关注意点:

  1. abstract不能与以下关键字共存
    • private
      (当修饰类和成员方法时, 若抽象类里有抽象方法, 其应该被子类继承, 并且在子类里重写父类所有的抽象方法, 而被private修饰, 类就不能被继承, 成员方法就不能被访问)
    • final
      (原因同上, 当final修饰类和成员方法时, 类就不能被继承, 成员方法就不能被重写)
    • static
      (若用static修饰, 则只通过”类名.”就可直接调用抽象方法, 显而易见, 这样没有任何意义)
  2. 当一个类中所有的成员方法都是静态方法(全部加了static)时, 构造方法必须私有(加private).
    (例: 在java.lang中, Math类不用创建对象, 而直接调用其常量和静态方法 – Math.PI和Math.abs(a))

总结

在面向对象中, 三大特性(封装, 继承, 多态)的理解尤为重要, 但同时理解这四种权限修饰关系, 对于谁能调用谁, 是否有访问权限等问题, 解决起来更得心应手! 当然, 本文也是我在CSDN上第一次使用Markdown编辑器来写作的, 感觉还不错!


本文地址: http://blog.csdn.net/menglanyingfei/article/details/55210673
本文源自: http://blog.csdn.net/menglanyingfei?viewmode=contents
希望大家能多多评论和指点我的文章, 以相互交流和学习, 也欢迎大家到我的博客里看看对您有帮助的文章, 也欢迎转载,但希望在明确位置注明超链接的出处! 谢谢!

阅读更多
版权声明:本文为 梦蓝樱飞 原创文章,可以随意转载,但真诚希望在明确位置注明原文超链接的出处!!! 非常感谢! https://blog.csdn.net/menglanyingfei/article/details/55210673
个人分类: Java基础
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭