Java 访问修饰符大全详解
鉴于笔试面试总会遇到,决心仔细认真梳理一下:
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 访问修饰符大全详解的更多相关文章
- java 包 修饰符 权限详解
作用域 当前类 同package 子孙类 其他package public √ √ √ √ protected √ √ √ × friendly(default) √ √ × ...
- 详解java访问修饰符
详解java访问修饰符 为了防止初学者看到因为专业的术语而感觉晦涩难懂,我接下来尽量用生动比喻的说法来解释!首先第一点,我们来讲讲什么叫修饰符!看看这个名称,想想他的意思.修饰符!修饰符!,就是用来修 ...
- java访问修饰符
了解面向对象思想的同学们,都知道"封装"这一基本特征,如何正确运用访问修饰符,恰恰能体现出封装的好坏. java访问修饰符有四个: 1)public:访问权限最高,其修饰的类.类变 ...
- C#和JAVA 访问修饰符
JAVA ----------------------------------------------- 访问修饰符 描述 ------------------------------- ...
- Java 访问修饰符详解
访问修饰符定义了类.属性和方法的访问权限,Java 中包含四种,访问权限从小到大为 private.default.protected 和 public. public,公共修饰符,被其修饰的类.属性 ...
- Java访问修饰符(访问控制符)
Java 通过修饰符来控制类.属性和方法的访问权限和其他功能,通常放在语句的最前端.例如: public class className { // body of class } private bo ...
- Java访问修饰符及其访问控制
java中的访问修饰符,可以看成是人的秘密分享级别.private 个人秘密 ,protected 家族秘密,default(不写修饰符)社区(邻居)秘密(在一个包下的能访问),public 社会秘密 ...
- C#和Java访问修饰符的比较
访问修饰符对于C#:类 的默认修饰符是 internal(外部类只能被public / internal 修饰)枚举 的默认修饰符是 public 且此类型不允许其它访问修饰符接口 的默认修饰符是 i ...
- Java 访问修饰符总结
Java中的访问修饰符 Java面向对象的基本思想之一是封装细节并且公开接口. Java语言采用访问控制修饰符来封装类及类的方法和属性的访问权限,从而向使用者暴露接口.隐藏细节. Java访问控制分为 ...
随机推荐
- 一个异步访问redis的内存问题
| 分类 redis | 遇到一个redis实例突然内存飙高的案例, 具体症状如下: 客户端使用异步访问模式 单个请求的回包很大,hgetall一个8M的key 由于访问量比较大,已经登录不上red ...
- 压力测试(四)-Mysql数据库压测实操
1.Jmeter压测实战之JDBC request压测Mysql讲解 简介:讲解jdbc压测mysql相关准备工作,jar包添加,配置讲解 1.Thread Group -> add -> ...
- VUE中登录密码显示与隐藏的最简设计——基于iview
目录 VUE中登录密码显示与隐藏的最简设计--基于iview 1.背景 2.实现最终效果 2.1 隐藏密码 2.2 显示密码 3.实现思路 3.1 v-if判断当前密码显示状态 3.2 密码隐藏状态 ...
- 网页入侵最后一道防线:CSP内容安全策略
首先,什么是最后一道防线?网页入侵都有一个过程,简单来说,就是1.代码注入,2.代码执行. 对于黑客来说,代码注入后并不代表就万事大吉了,因为此时代码只是安静地躺在受害者的服务器里,什么坏事都没干呢! ...
- 关于CSS居中问题的一些总结
前端页面开发中关于内容居中的需求应用概率很大,自己搜集一些资料和总结关于css里的几种居中效果实现 第一常用text-align:center先将子元素将块级元素改为行内元素,即display:inl ...
- vue+element tree(树形控件)组件(2)
今天记录组件的代码和一个调用它的父组件的代码,接口接收数据直接传element直接能用的,也就是经过上一章函数处理过的数据以下是代码 父组件 <template> <commonfi ...
- HashSet底层、及存入对象时候如何保持唯一
HashSet底层.及存入对象时候如何保持唯一 在JDK1.8之前,哈希表底层采用数组+链表实现,即使用链表处理冲突,同一hash值的链表都存储在一个链表里. 但是当位于一个桶中的元素较多,即hash ...
- 复制图片链接和标题生成Markdown文本
写Markdown的时候常常会需要复制图片链接和标题以插入图片,不借助其他工具的话,一般需要先在Markdown文件中输入插入图片的格式,然后在浏览器中复制图片链接和标题将其依次粘贴到Markdown ...
- 3L-最好、最坏、平均、均摊时间复杂度
关注公众号 MageByte,设置星标点「在看」是我们创造好文的动力.后台回复 "加群" 进入技术交流群获更多技术成长. 本文来自 MageByte-青叶编写 上次我们说过 时间复 ...
- Redis集群搭建及选举原理
redis集群简述 哨兵模式中如果主从中master宕机了,是通过哨兵来选举出新的master,在这个选举切换主从的过程,整个redis服务是不可用的.而且哨兵模式中只有一个主节点对外提供服务,因此没 ...