java se 权限修饰符、final关键字、代码块、内部类

一、权限修饰符

1.简述:

  • public:最高权限,那都可以访问
  • protected:受保护的
  • default:default 默认的(不写权限修饰符就是默认权限,不能直接把default写出来)
  • private:私有的(只能在自己类中直接访问)

2.不同权限的访问能力

public

protected

default(空的)

private

同类

yes

yes

yes

yes

同包不同类

yes

yes

yes

no

不同包子父类

yes

yes

no

no

不同包非子父类

yes

no

no

no

public -> 最大权限 privat->最小权限

建议:

属性: 用 private -> 封装思想

成员方法: public -> 便于调用

构造: public -> 便于new对象

二、final关键字

1.final修饰类

格式: public final class 类名{}

特点:被final修饰的类不能被继承

2.final修饰方法

格式:修饰符 final 返回值类型 方法名(形参){

方法体

return 结果}

特点:被final修饰的不能被重写(final 和abstract 不能同时修饰一个方法)

3.final修饰局部变量

格式:final 数据类型 变量名 = 值

特点:被final修饰的变量不能被二次赋值

4.final修饰对象

格式:final 数据类型 对象命 = new 对象()

特点:被final修饰的对象,地址值不能改变,对象中的属性值可以改变

5.final修饰成员变量

格式:final 数据类型 成员变量 = 值

特点:1.需要手动赋值。2.不能二次赋值

三、代码块

1.构造代码块

格式:{

代码

}

执行特定:优先于方法执行,每new一次,就会执行一次

2.静态代码块

格式:static{

代码

}

特点:静态代码块优先于构造代码块和构造方法执行,而且只执行一次。

3.静态代码块使用场景

一些代码最先初始化而且只初始化一次

四、内部类

在java中允许一个类定位于另外一一个类,前者是内部类,后者是外部类

分类: 成员内部类,局部内部类,匿名内部类

1.静态成员内部类

格式:直接在定义内部类的时候加上static关键字

public class A{

static class B{

}

}

注意:

  1. 内部类可以定义属性,方法,构造
  2. 静态成员内部类可以被final或者abstract修饰(final->不能继承,abstract->不能new)
  3. 静态内部类不能调用外部的非静态成员
  4. 内部类还可以被四种权限修饰符修饰

调用内部静态类:外部类.内部类 对象名 = new 外部类();

2.非静态成员内部类

格式:

public class A{

public class B{

}

}

注意:

  1. 内部类可以定义属性,方法,构造
  2. 内部类还可以被四种权限修饰符修饰

调用非静态内部类:外部类.内部类 对象名 = new 外部类().new 内部类();

3.局部内部类

可以在代码中构造中代码块中

4.匿名内部类

格式:

new 接口/对象类(){

重写方法

}.重写的方法();

或者:

类名 对象命 = new 接口/对象类(){

重写方法

}

对象命.重写的方法();

使用情况:仅简单使用一下接口里面的方法。

Java后端学习路线 文章被收录于专栏

Java基础 MySQL

全部评论
接好运
点赞 回复 分享
发布于 昨天 12:22 湖北
天哪,凌晨两点还在学😨
点赞 回复 分享
发布于 05-06 02:57 江苏

相关推荐

04-26 15:09
已编辑
美团_测试开发(准入职员工)
面试官是女生,没开摄像头,进来先介绍技术栈,是否接受php整体30min1. Linux命令,文本处理;只问了我是否熟悉,我说熟悉,没深挖了2. 查看正在运行Java的进程;netstat、lsof,面试官回复ps命令呢,我说也用过,和lsof差不多,都可以查看3. 有没有用过MySQL集群,如果部署在单机,有没有保证可用性;因为是单体,评估了连接数,并且用了redis减轻压力进行兜底4. 提了一嘴RocketMQ,问我是用过的对吧;我说是的,没深挖5. MySQL索引结构;为什么要用B+树;聚簇索引和非聚簇索引6. 唯一索引是聚簇还是非聚簇?瞎猜了说是非聚簇,面试官让展开说说,回答是唯一索引只需要判断有没有重复,没必要用到聚簇索引,非聚簇够了。7. WAL技术?没听过,面试官说是数据库当中的预写日志,undo,redo,然后我回答了binlog,redolog,undolog8. CPU突然变高了怎么排查?top命令先定位进程,如果是程序,查看日志,看看是不是死循环了,定位后去修改;感觉没答好。9. springboot注解,MVC机制原理,回答了是通过拦截器拦截所有请求,根据URL去映射Controller10. 计网 浏览器输入URL整体流程11. 大整数相加,不用加法;不会12. 合并有序链表;ok13. 场景题,抖音的点赞,怎么设计,用到了哪些组件,表结构14. 两个文件,一个50w的URL,一个500,找到相同的URL15. 反问,能否提前实习#牛客AI配图神器##融360##秋招# #面经#
查看15道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务