适合有编程基础的人看的《韩顺平零基础30天学java》笔记(P425~459)

写在最前边:

研究生一枚,为后端实习和未来工作打基础。无意间发现韩顺平老师的课程,细心细致,讲课和吴恩达老师一样,都是保姆式讲解,各种基础知识都会补充,爱了。
韩顺平老师课程地址:https://www.bilibili.com/video/BV1fh411y7R8?spm_id_from=333.999.0.0
阅读提醒:本笔试适合有编程语言基础的伙伴阅读,因为本兔兔是本专业的,有c、c++、python 、sql基础,笔记中特别的基础的内容就没有记录。完全零基础的小伙伴建议跟着韩老师的课程自己记录。

Java 基础

第三阶段 java语言中面向对象的一些应用

前提:反编译工具javap

在这里插入图片描述

第一章 枚举enum 和class 、 i接口 同级别

在这里插入图片描述

一、引出:

在这里插入图片描述

二、解决方法:
传统技术:

在这里插入图片描述

缺点:程序员 可以随意修改季节名称和描述,还可以随意增加。可是季节是固定的呀!
枚举技术(enum)
1、介绍
  • 枚举是一组常量集合
  • 是一种特殊的类, 只包含一组有限的****特定的对象
2、实现方式
  • 自定义
    在这里插入图片描述
  • 使用enum关键字
    简化了在本类内部创建一组对象的过程,只用常量名(参数列表)就可以。但是必须放在类的首行
    在这里插入图片描述
    细节:
    1、enum枚举类 默认 继承final Enum类,所以根据java的单继承机制,所有enum类都不可以继承其他类,但是可以实现接口
    使用javap查看如下:在这里插入图片描述
    注意所有enum类的默认 toString()方法都是Enum这个顶级父类的:输出的是常量名
    在这里插入图片描述
    Enum类的其他方法
    在这里插入图片描述
    在这里插入图片描述
    2、enum中定义对象的方法:
    使用无参构造器可以只写常量名:SPRING;
    使用有参构造器必须写对参数列表:WINTER(“春天” , “温暖”);
    enum类对按照先后次序给这些对象从0开始编号,可以使用ordianl()方法获取某个常量的编号
    3、枚举对象放在首行,多个对象之间用逗号分隔,以分号 结尾
三、注解Annotation:java内置的语法校验 注解类,源码中用@interface定义

前提:修饰注解的 注解 称为 元注解。了解一下即可
在这里插入图片描述

1、@Override

限定某个方法为重写父类的。
如果不写@Override,也可以实现重写。但是只有加了@Override编译器才会校验是否真的正确地重写了该方法。

2、@Deprecated

表示某个元素(类、方法、字段、包、参数)已过时,可以做版本升级的兼容和过渡
该元素仍然可以使用,只是不推荐使用。使用过时元素时,其名字会有删除线
在这里插入图片描述

3、@SuppressWarning({“”,“”,“”,…})

抑制编译器警告
可以自选想要抑制的内容,作用范围在注解下一条语句的使用范围有关。如在类上注解,作用域整个类,在方法上注解作用域为整个方法,在一条语句上注解则为这一条语句。
在这里插入图片描述

第二章 异常Exception

在这里插入图片描述

一、入门概念
1、当程序执行过程遇到一些不正常的情况(如 计算除法运算时,分母为0),程序会抛出异常,并且导致程序崩溃从而退出程序。

因此java设计者提供了一个异常处理机制来解决以上问题。

2、异常处理机制——异常捕获try-catch如果程序员在编程时,认为一段代码可能出现异常问题,便可以使用try-catch异常机制来解决,保证程序的健壮性

快捷键: ctrl + alt + t --> try catch
在这里插入图片描述
在catch中可以写上更详细的异常处理方法

二、异常概念
1、基本概念

“异常”指程序执行中 不正常的情况。≠语法错误(int num = “100”)、逻辑错误(写了个冒泡排序但是结果不对)

2、分类
① Error(错误)

在这里插入图片描述

② Exception(异常)

在这里插入图片描述

  • 运行时异常:可以不作处理,因为很普遍,处理反而影响运行效率。但是以下五个常见的异常建议使用try-catch处理一下:
    在这里插入图片描述
  • 编译时异常 :编程时就会通过红色波浪线提示的错误必须处理。一般发生在网络、文件、数据库相关操作中
    在这里插入图片描述
三、异常体系图

可以自己在 idea中 查看
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

四、异常处理方式 二选一即可
1、try-catch 【-finally可选】
··· 程序员 去处理在这里插入图片描述

细节1:可以有多个catch方法体,捕获不同的异常,要遵循子类异常排在父类异常前边。
但是只要捕获了一个异常就不会再执行别的Catch。在这里插入图片描述
细节2:可以只用try-finally,但是这种相当于没有捕获异常,只是为了释放一些资源,做一些善后处理。应用场景是 执行一段代码,无论是否发生异常都必须执行某个业务逻辑。
练习题
在这里插入图片描述
小结
在这里插入图片描述

2、throws

运行时异常,throws是默认方式

··· 调用者(方法)处理,最顶级的处理者是JVM。如果到了JVM,那么就会输出异常信息然后退出程序

在这里插入图片描述

··· 使用介绍

1)该方法不知道怎么处理方法中的异常或者懒得处理,就抛出(形象一点,扔出去呗)异常给他的使用者。
2)抛出的异常如果知道是什么就详细点,如果很多种异常还可以写成一个列表抛出去。不知道或者太懒了就宽泛点(Exception)

··· 使用细节1:

具有继承关系的两个类。若子类重写了父类的某个 带有throws的方法,那么子类throws抛出的异常类型要么和父类一致,要么为父类的子类异常
在这里插入图片描述

··· 使用细节2:

若方法f1()抛出的是 编译异常,则使用f1()方法的方法必须显示处理(要么try ,要么throws)
在这里插入图片描述
.
若方法f1()抛出的是 运行异常,则使用f1()方法的方法可以不显示处理
在这里插入图片描述

四、自定义异常(写个继承Exception / RuntimeException的类)
步骤在这里插入图片描述

一般继承RuntimeException的类,就可以在有异常的语句 直接【throw new 异常】原地抛出异常给调用者,而不必在方法名上写throws。比较方便在这里插入图片描述

举例

在这里插入图片描述
在这里插入图片描述

例题在这里插入图片描述
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值