java基础入门(三)
枚举类
使用方法
- 使用关键字enum代替class,默认会继承Enum类
public static final 类名 = new 类名(参数)
直接使用类名(参数)
代替,这种语法会默认调用该类的构造器,如果有无参构造器可以不填参数- 如果有多个常量对象,使用
,
间隔 - 创建的对象放在枚举类的行首
- Enum类不可在外部创建对象,因为其构造器为私有
常用方法
方法名 | 详细描述 |
---|---|
valueOf | 通过字符串找到叫该名字的枚举对象,如果没找到会报异常 |
toString | 返回枚举对象的名称,通常会在枚举类中重写该方法 |
values | 隐藏在枚举类中的方法,返回一个数组,含有全部定义的枚举对象 |
ordinal | 输出该枚举对象的定义次序,从0开始编号 |
compareTo | 比较两个枚举对象,按照定义次序比较,返回前面的枚举常量编号减去后面的枚举常量编号 |
注意事项
- 使用enum关键字后不能继承其他类(enum会隐式的继承Enum类)
- 枚举类的普通类一样可以实现接口
注解
注解(Annotation)也叫做元数据(Metadata),用于解释包、类、方法、属性、构造器、局部变量等数据信息。注解不影响程序逻辑,但是可以被编译,相当于嵌入在代码中的补充信息。
常用的注解符号
@Override
重写某个父类方法,该注解只能用于方法@Deprecated
表示某个程序元素已过时,即不推荐使用@SuppressWarnings
抑制编译器警告,一般使用all,语法@SuppressWarnings({"all"})
@interface
用于定义了注解类,之后用到再细说元注解
@Retention
指定注解的作用范围,有三种类型:SOURCE
源码时,CLASS
类中,RUNTIME
运行时@Target
指定注解可以在哪些地方使用@Documented
指定该注解是否会在javadoc体现@Inherited
子类继承父类的注解
异常处理
在程序执行中发生的不正常行为称为异常,异常不是语法或逻辑错误。
正常来说,当程序出现异常时,会立即终止,不会执行后面的代码,但是这样会导致因为一点小错误而耽误整个程序的执行。为了避免这种事情发生,引入异常处理机制进行异常处理,那么即使出现了异常,程序也可以继续执行。
异常的分类
- Error:JVM无法解决的严重问题。如:JVM系统内部错误,资源耗尽等严重情况。StackOverflowError、OutOfMemoryError等。Error属于严重错误,程序会崩溃。
- Exception:其他外在因素导致的一般性问题,可以使用
try-catch
语句跳过避免程序崩溃。比如NullPointerException,ArithmeticException等。Exception分为运行时异常和编译时异常。
try-catch用法及注意事项
try-catch
类似于Python的try-except
。
public class Test{ |
throws用法
如果一个方法中可能产生某种异常,但是不能确定如何处理这种异常,则可以显示地声明抛出异常,表示由该方法的调用者负责处理。
throws可以声明抛出的异常列表,可以是异常类型或者异常的父类类型。
public class Test{ |
注意事项
- 对于编译异常,程序必须处理。对于运行异常,若程序不处理,默认使用throws向上抛出,直到抛到JVM处终止程序。
- 子类重写父类的方法时,对抛出异常的规定:子类重写的方法,抛出的异常要么和父类的异常一致,要么为父类抛出异常的子类。
- 如果有try-catch语句,就不必用throws
自定义异常
自定义一个异常,用于规定程序必须按照某个指定的逻辑来编写或运行。
用法及注意事项
一般情况下,继承RuntimeException
类
public class Test{ |
throws与throw
意义 | 位置 | 后面接 | |
---|---|---|---|
throws | 异常处理的一种方式 | 方法声明处 | 异常类型 |
throw | 手动生成异常对象的关键字 | 方法体中 | 异常对象 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 楪祈のBlog!