鉴于笔试面试总会遇到,决心仔细认真梳理一下:

1:涉及的关键字:public,default(表示缺省),protected,private,static,final,abstract.

2:关键字含义大家都懂,现在逐场景总结他们的使用场合。

3:修饰类时:

  1.普通类:public,default,final

       public类:此类工程内可见

        1.一个.java文件中可以没有public类,如有,public类类名必须和文件名相同

            

          (此处其实不需要非要有类“Main")

        2.当一个.java文件有public类且有程序入口时public static void main(String[] args),入口必须在public类中。

            

          个人理解:当加载一个类文件时,它会按文件名寻找public类,如果找到了,则只会在public类中寻找程序入口,否则依次寻找每个类。

       default:此类具有包内可见

       final:此类不允许继承

  2.抽象类public,default,abstract

      特点:1.无法创建此类的对象,除非子类实现所有抽象方法,否则子类还是抽象类。

         2.可以没有任何抽象方法,用于阻止创建某个类的对象

      public,default用法同上,修饰类时abstract和final互斥

  3.接口:写也是public abstract,不写也默认public abstract.

      当手动写上public时,如果.java文件名和接口名不同,则报错。

  4.内部类:

4:用于修饰属性时:

    所有场景public,default,protected,private,static,final 都能任意组合使用。

    顺序:public static final int 或 public final static int .

    关于接口的属性:

        1.默认是public static final的。

        2.必需被常量或非常量表达式初始化。

5:用于修饰方法时:

    普通类:public,default,protected,private,static,final 都能任意组合使用

        final方法表示不能覆盖,而非不能重载,重载指函数签名不同(函数名,参数类型,顺序,个数,)

    抽象类:

        抽象函数只能用设置可见性,包括(public,protected,default)。

    接口:

        java8中给接口里的方法增加了default(真default)和static关键字。

        接口中的非抽象方法:

          1.静态方法:可以同static 或public static 修饰,默认是public的,即使不写public。

          2.非静态方法:可以用default(真default)或public default修饰,默认是public的。当实现类覆盖此方法时,也必须是public的,因为覆盖方法不能减小方法可见性。

        接口中的抽象方法:

          只能且默认是 public abstract

    

总结:

  对于类,只能用public ,default, abstract,final修饰。当用abstract修饰时,即为抽象类。public类应定义在自己的文件中。

  对于属性:常规类public ,default, protected ,private,final,static均可,接口中的属性默认public static final.

  对于方法:public ,default, protected ,private,final,static abstract均可,final与abstract互斥,抽象方法中能用public或protected修饰,在接口中只有public

Java 访问修饰符大全详解的更多相关文章

  1. java 包 修饰符 权限详解

    作用域   当前类    同package   子孙类 其他package  public √   √  √ √  protected √ √ √ ×  friendly(default) √ √ × ...

  2. 详解java访问修饰符

    详解java访问修饰符 为了防止初学者看到因为专业的术语而感觉晦涩难懂,我接下来尽量用生动比喻的说法来解释!首先第一点,我们来讲讲什么叫修饰符!看看这个名称,想想他的意思.修饰符!修饰符!,就是用来修 ...

  3. java访问修饰符

    了解面向对象思想的同学们,都知道"封装"这一基本特征,如何正确运用访问修饰符,恰恰能体现出封装的好坏. java访问修饰符有四个: 1)public:访问权限最高,其修饰的类.类变 ...

  4. C#和JAVA 访问修饰符

    JAVA ----------------------------------------------- 访问修饰符        描述 ------------------------------- ...

  5. Java 访问修饰符详解

    访问修饰符定义了类.属性和方法的访问权限,Java 中包含四种,访问权限从小到大为 private.default.protected 和 public. public,公共修饰符,被其修饰的类.属性 ...

  6. Java访问修饰符(访问控制符)

    Java 通过修饰符来控制类.属性和方法的访问权限和其他功能,通常放在语句的最前端.例如: public class className { // body of class } private bo ...

  7. Java访问修饰符及其访问控制

    java中的访问修饰符,可以看成是人的秘密分享级别.private 个人秘密 ,protected 家族秘密,default(不写修饰符)社区(邻居)秘密(在一个包下的能访问),public 社会秘密 ...

  8. C#和Java访问修饰符的比较

    访问修饰符对于C#:类 的默认修饰符是 internal(外部类只能被public / internal 修饰)枚举 的默认修饰符是 public 且此类型不允许其它访问修饰符接口 的默认修饰符是 i ...

  9. Java 访问修饰符总结

    Java中的访问修饰符 Java面向对象的基本思想之一是封装细节并且公开接口. Java语言采用访问控制修饰符来封装类及类的方法和属性的访问权限,从而向使用者暴露接口.隐藏细节. Java访问控制分为 ...

随机推荐

  1. Visual Studio 2013编译Tesseract 3.04

    文章目录 去年时候使用了VS2008编译了Tesseract 3.02版本,主要是参考了一份官方文档,但是对于目前的最新版本并没有给出说明. 本文主要参考了Paul Vorbach的How to bu ...

  2. mysql长连接与短连接

    什么是长连接? 其实长连接是相对于通常的短连接而说的,也就是长时间保持客户端与服务端的连接状态. 通常的短连接操作步骤是: 连接->数据传输->关闭连接: 而长连接通常就是: 连接-> ...

  3. 【WPF学习】第五十章 故事板

    正如上一章介绍,WPF动画通过一组动画类(Animation类)表示.使用少数几个熟悉设置相关信息,如开始值.结束值以及持续时间.这显然使得它们非常适合于XAML.不是很清晰的时:如何为特定的事件和属 ...

  4. JavaScript中prompt的使用

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.js * 作者:常轩 * 微信公众号:Worldhel ...

  5. 如何在自己的CSDN博客中增添【高大上】的博客栏目?

    前几天看到过一位博主的博客界面,向下看 ☟ (博主对不起啊!把你的公众号给抹了~~~),感觉做这个东西挺好玩的,而且我竟然找不到在哪个地方可以设置!在百度上也没有搜到教程,最后问了一下贺老师知道了入口 ...

  6. Java入门教程十一(异常处理)

    在程序设计和运行的过程中,发生错误是不可避免的.尽管 Java 语言的设计从根本上提供了便于写出整洁.安全代码的方法,并且程序员也尽量地减少错误的产生,但是使程序被迫停止的错误的存在仍然不可避免.为此 ...

  7. VUE实现Studio管理后台(二):Slot实现选项卡tab切换效果,可自由填装内容

    作为RXEditor的主界面,Studio UI要使用大量的选项卡TAB切换,我梦想的TAB切换是可以自由填充内容的.可惜自己不会实现,只好在网上搜索一下,就跟现在你做的一样,看看有没有好事者实现了类 ...

  8. yii2设置默认控制器

    以Yii2高级模板配置为例

  9. 7-45 jmu-python-涨工资 (10 分)

    输入一组工资数据,写入列表.对于小于5000的工资,涨1.5倍.并输出涨后的工资数据. 输入格式: 数据之间空格隔开 输出格式: 涨工资后的数据,空格隔开.尾部 不带空格. 输入样例: 3000 40 ...

  10. LeetCode:两数之和、三数之和、四数之和

    LeetCode:两数之和.三数之和.四数之和 多数之和问题,利用哈希集合减少时间复杂度以及多指针收缩窗口的巧妙解法 No.1 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在 ...