Java面向对象
- 面向过程VS面向对象
- 封装
- 继承
- 接口
- 多态
面向过程VS面向对象
面向对象编程,是一种通过对象的方式,把现实世界映射到计算机模型的一种编程方法
面向过程编程,是把模型分解成一步一步的过程
封装
- package包
- 命名规范
包名全部由小写字母(多个单词也全部小写)
如果包名包含多个层次,每个层次用“.”分割
包名一般由倒置的域名开头,比如 com.baidu,不要有 www
自定义包不能 java 开头- 定义位置
package 语句应该放在源文件的第一行
在每个源文件中最多只能有一个包定义语句- 包的导入
import 包.类 ;
import 包.类1 ;
import 包.* ;
import static 包.类.静态属性/方法- 系统常用包
java.lang Java 的核心类库,默认加载的包
java.io 标准输入/输出类库
java.net 网络功能的类库
java.util 工具包
java.sql 处理数据库的包
- class类的定义
- 什么是类?
- 什么是对象?
- 类和对象的关系?
- 类的组成
- field属性
成员属性
静态属性- property属性
setter
getter- method方法
成员方法
静态方法
方法的重载(方法名相同,参数个数/参数类型不同)
rest参数- constructor构造方法
构造方法的重载
给成员属性赋值
创建对象- 代码块
静态代码块
普通代码块- 内部类
成员内部类
静态内部类
局部内部类
匿名类- lombok代码生成工具
lombok.jar idea 2020自动集成了 lombok插件
离线安装插件地址
@NonNull 设置某个属性/变量 不允许为空
@RequiredArgsConstructor 设置构造方法、会将添加@NonNull的属性设置为构造参数
@NoArgsConstructor 设置无参构造方法
@AllArgsConstructor 将所有非 final 成员属性设置为参数
@Getter/@Setter 生成 getter/setter属性
@ToString 生成 toString() 方法
@EqualsAndHashCode 生成 equals 和 hashCode 方法
@@Data 是一个简写, 相当于 添加了@ToString,@EqualsAndHashCode,@Getter,@Setter- records类 【JDK14】
public record Mouse(int x , int y) {}
record 定义的类、默认继承 Record
record 定义的 属性默认是 final 的
record 可以 自定义构造方法
record 中可以添加 静态/成员方法、静态属性
- 修饰符
- 权限修饰符
public
protected
friendly(default)
private- finally 修饰符
修饰类 类不可被其他类继承
修饰属性 常量、不允许修改。可以在 代码块、声明 和 构造方法中完成赋值
修饰方法 方法不允许覆盖重写
修饰方法形参 常量、不允许修改
- this关键字