JavaSE入门面向对象基础知识及部分API day03

一,枚举

1.定义枚举

(1)格式:修饰符 enum 枚举类名{枚举值1,枚举值2...}

(2)注意事项:枚举值书写规范是全部字母大写

2.使用枚举:枚举类名.枚举值

3.枚举的作用:一般用来表示只有几个固定值的类,例如性别类,只有男和女两个值

4.枚举的本质

(1)枚举的本质是一个特殊的最终类,不可以被继承

(2)枚举值就是枚举类的对象

(3)枚举类继承了java.Enum类

5.拓展

(1)枚举类用的是多例设计模式

(2)使用枚举类可以很简单的实现单例设计模式,在枚举类里只设置一个对象即可

二,泛型

1.泛型的本质:定义类,接口,方法时,同时声明一个或者多个表示未知类型的变量,这些表示未知类型的变量被称为泛型

2.泛型的作用:在编译阶段可以避免出现一些非法数据,也可以避免强制类型转换及其可能出现的异常

3.注意事项

(1)泛型擦除:泛型只存在于编译阶段,编译后的字节码文件不存在泛型

(2)泛型只能用于引用类型

(3)泛型没有多态

4.泛型的应用

(1)自定义泛型类:修饰符 class 类名 <类型变量,类型变量...>{}

(2)自定义泛型接口:修饰符 interface 接口名 <类型变量,类型变量...>{}

(3)自定义泛型方法:修饰符 <类型变量,类型变量....> 返回值类型 方法名(形参列表){}

5.泛型限定

(1)泛型通配符<?>:表示任何类型

(2)泛型上限<? extends 数据类型>:表示指定数据类型或者它的子类

(3)泛型下限<? super 数据类型>:表示指定数据类型或者它的父类

三,异常

1.异常的本质:异常就是代表程序出现的问题

2.异常的代表Exception

(1)运行时异常:RuntimeException及其子类,编译阶段不会出现错误提醒,运行时可能会出现的异常

(2)编译时异常:非RuntimeException及其子类,编译阶段会出现错误提醒,运行时可能会出现的异常

3.异常的处理

(1)声明处理异常:在方法上使用throw关键字,可以将方法内部出现的异常跑出去给调用者处理

(2)捕获异常:直接捕获程序出现的异常

4.finally关键字:正常情况下,finally代码块中的代码永远会执行

5.异常产生的原理:产生异常,就会创建异常对象,封装异常信息,然后通过throw抛出异常

四,常用的API

1.Object类中的

(1)toString()

      ①基本作用:返回对象的字符串类型

      ②存在的意义:让子类重写,以便返回子类对象的内容

      ③注意事项:

        Ⅰ:如果开发中打印对象的时候不希望打印的是地址值,需要重写toString方法

        Ⅱ:开发中,打印对象一般希望打印的是该对象的所有属性值

(2)equals

      ①基本作用:默认是比较两个对象的地址值是否相等

      ②存在的意义:让子类重写,以便于比较对象的内容是否相同

      ③注意事项:

        Ⅰ:Object类中的equals方法默认比较的是两个对象的地址值

        Ⅱ:在开发中,如果两个同类型的对象所有属性值相同,往往认为这个是两个相同的对象

(3)clone:复制出一个一模一样的对象出来

      ①浅克隆:拷贝出的新对象,与原对象的数据一模一样(引用类型拷贝的只是地址)

      ②深克隆

        Ⅰ:对象中的基本类型直接拷贝

        Ⅱ:对象中的字符串数据拷贝的还是地址值

        Ⅲ:对象中包含的其他对象,不会拷贝地址值,而是创建一个新的对象

2.Objects中的equals:Objects中也有equals方法,可以避免空指针异常,更加安全

3.包装类

(1)装箱和拆箱

      ①自动装箱:基本数据类型可以自动转换成包装类型

      ②自动拆箱:包装类型可以自动转换成基本数据类型

(2)基本类型与字符串的转换

      ①基本类型转换成字符串:基本类型数据+”“

      ②字符串转换成基本类型:public static int parseInt(String s)

4.StringBuilder/StringBuffer

(1)本质:代表的是可变字符串对象,相当于一个容器,它里面封装的字符串是可变的,就是用来操作字符串的

(2)好处:比String更适合做字符串的修改操作,效果会更好,代码也会更简洁

(3)不同:StringBuilder是线程不安全的  StringBuffer是线程安全的

(4)注意:如果操作字符串较少,或者不需要操作,以及定义字符串时,则用String

5.Stringjoiner

(1)本质:和StringBuilder/StringBuffer,代表的是可变字符串对象

(2)好处:不仅能提高字符串的操作效率,并且在有些场景中使用它操作字符串,代码会更简洁,适合拼接字符串内容

(3)弊端:add方法只能拼接实现类的对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值