Java学习阶段性总结(2)(上)

13 阅读5分钟

面向对象进阶

接口

接口的定义和使用

● 接口用关键字interface来定义public interface接口名{ }

● 接口不能实例化

● 接口和类之间是实现关系,通过implements关键字表示public class类名implements接口名{ }

● 接口的子类(实现类)要么重写接口中的所有抽象方法要么是抽象类

注意1:接口和类的实现关系,可以单实现,也可以多实现。public class类名implements接口名1,接口名2{ }

注意2:实现类还可以在继承一个类的同时实现多个接口。public class类名extends父类implements接口名1,接口名2{ }

接口中成员的特点

·成员变量

只能是常量

默认修饰符:public static final

·构造方法

没有

成员方法 只能是抽象方法

默认修饰符:public abstract

·JDK7以前:接口中只能定义抽象方法。

·JDK8的新特性:接口中可以定义有方法体的方法。

·JDK9的新特性:接口中可以定义私有方法。

类与接口的关系

实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口。

接口与接口之间

是继承关系,可以单继承也可以多继承。

细节

如果实现类实现最下面的子接口,那么就需要重写所有的抽象方法。

接口中默认方法的定义格式

public default 返回值类型 方法名(参数列表){}

接口中默认方法的注意事项

1.默认方法不是抽象方法,所以不清治被重写,重写的时候去掉default关键字

2.public可以省略,default不能被省略

3.如果实现了多个接口,多个接口中存在相同名字的默认方法,子类就必须对该方法进行重写。

接口中静态方法的定义格式

格式:public static 返回值类型 方法名(参数列表){}

范例:public static void show(){}

接口中静态方法的注意事项

静态方法只能通过接口名调用,不能通过实现类名实现或者对象名调用

public可以省略:static不能省略

JDK9新增的方法

微信图片_20260206153925_92_26.jpg

微信图片_20260206154112_93_26.jpg

插入

微信图片_20260206154312_94_26.jpg

内部类

例子

微信图片_20260206160150_96_26.jpg

类的五大成员

属性,方法,构造方法,代码块,内部类

内部类的访问特点

1.内部类可以直接访问外部类的成员,包括私有

2.外部类要访问内部类的成员,必须创建对象

总结

微信图片_20260206161239_97_26.jpg

内部类的分类

成员内部类,静态内部类,局部内部类,匿名内部类。

成员内部类

微信图片_20260206171612_98_26.jpg

微信图片_20260206171823_99_26.jpg

微信图片_20260206172257_100_26.jpg

微信图片_20260206172258_101_26.jpg

微信图片_20260206172259_102_26.jpg

总结

微信图片_20260206172543_103_26.jpg

静态内部类

静态内部类只能访问外部类中的静态变量和静态方法,如果想要访问非静态的需要创建对象。

微信图片_20260209143559_106_26.jpg

创造静态内部类对象的格式

外部类型.内部类名 对象名=new 外部类名.内部类名();

调用非静态方法的格式

先创建对象,用对象调用

调用静态方法的格式

外部类名.内部类名.方法名();

总结

微信图片_20260209144312_107_26.jpg

局部内部类

1.将内部类定义在方法里面就叫做局部内部类,类似于方法里面的局部变量。

2.外界是无法直接使用,需要在方法内部创建对象并使用。

3.该类可以直接访问外部类的成员,也可以访问方法内的局部变量。

微信图片_20260209151415_108_26.jpg

总结

微信图片_20260209160545_109_26.jpg

API

Math

微信图片_20260209161757_111_26.jpg

微信图片_20260209161801_113_26.jpg

System

微信图片_20260209161756_110_26.jpg

微信图片_20260209161759_112_26.jpg

Runtime

表示当前虚拟机的运行环境

微信图片_20260209162344_114_26.jpg

Object

1.Object是java中的顶级父类。所有的类都直接或者间接的继承于Object类。

2.Object类中的方法可以被所有子类访问,所有我们要学习Object类和其中的方法。

Object构造方法

微信图片_20260209163448_115_26.jpg

Object成员方法

微信图片_20260209170252_116_26.jpg

对象克隆

把A对象的属性值完全拷贝给B对象,也叫对象拷贝,对象复制;

浅克隆 (Shallow Clone)

· 只复制对象本身,不复制对象内部包含的引用类型字段 · 克隆对象和原对象共享引用类型字段 · 默认的 clone() 方法实现的就是浅克隆

深克隆 (Deep Clone)

· 不仅复制对象本身,还递归复制对象内部的所有引用类型字段 · 克隆对象和原对象完全独立,不共享任何引用

BigInteger

在java中,整数有四种类型:byte,short,int,long

在底层占用字节个数,1,2,4,8

构造方法

微信图片_20260209231755_118_26.jpg

常见的成员方法

微信图片_20260209235316_119_26.jpg

存储上限

微信图片_20260209235510_121_26.jpg

总结

微信图片_20260209235508_120_26.jpg

BigDecimal

构造方法和静态方法获取

微信图片_20260209235830_122_26.jpg

BigDecimal的使用

微信图片_20260210000450_123_26.jpg

补充枚举常量

微信图片_20260210000701_124_26.jpg

底层存储方式简单解析

BigDecimal 的底层存储可以简单理解为:用整数表示数值,用另一个数记录小数点位置。

核心组成:

  1. 整数部分(unscaledValue)

· 用一个 BigInteger 存储去掉小数点后的完整数字

· 比如 123.45 → 存储为整数 12345

  1. 缩放比例(scale)

· 用一个 int 记录小数点右移了几位

· 比如 123.45 → scale = 2(小数点右移2位得到整数)

· 负数表示:12300 → scale = -2(小数点左移2位得到整数) 微信图片_20260210001408_127_26.jpg

正则表达式

微信图片_20260210001752_131_26.jpg

微信图片_20260210001749_128_26.jpg

微信图片_20260210001750_129_26.jpg

微信图片_20260210001751_130_26.jpg

正则表达式的作用

1.校验字符串是否满足规则

2.在一段文本查找满足要求的内容

分组

分组就是用圆括号 () 将正则表达式的一部分括起来,形成一个子表达式。

捕获分组

捕获分组会记住匹配的内容,可以通过索引或名称访问。

非捕获分组

非捕获分组使用 (?:pattern) 语法,它们不保存匹配的内容。

总结

微信图片_20260210005134_136_26.jpg

常用API

Date

微信图片_20260210005441_139_26.jpg

微信图片_20260210005440_138_26.jpg

微信图片_20260210005439_137_26.jpg

SimpleDateFormat

微信图片_20260210010215_140_26.jpg

微信图片_20260210010216_141_26.jpg

微信图片_20260210010217_142_26.jpg

格式化的时间形式和常用的模式关系

微信图片_20260210010218_143_26.jpg

总结

微信图片_20260210010219_144_26.jpg

Calender

概述

微信图片_20260210010627_145_26.jpg

获取Calendar日历类对象的方法

微信图片_20260210010628_146_26.jpg

常用方法

微信图片_20260210010629_147_26.jpg

总结

微信图片_20260210010914_148_26.jpg

注:所有图片都来自于黑马程序员网课,所有总结笔记只用于自学。