一、编程思想1. 面向过程将完整业务拆解为一步步执行的流程按顺序逐步完成任务聚焦执行步骤。2. 面向对象先梳理程序中涉及的实体对象以对象为核心依靠对象自身属性与行为、以及对象间的协作来解决问题聚焦实体与关系。二、类与对象1. 对象客观世界中一切事物都可看作对象是实体在 Java 程序中的具象体现。 对象由两部分组成属性描述对象静态特征使用变量表示方法描述对象动态行为、功能使用方法表示。2. 类与对象的关系类多个同类对象的模板统一描述这类对象具备的属性和行为对象类的实例一个类可以创建出多个不同对象。三、类的组成开发重点类主要由成员变量属性、成员方法、构造方法三部分构成。一成员变量属性定义位置类内部、所有方法外部。语法格式// 仅声明 数据类型 变量名; // 声明并直接赋值 数据类型 变量名 初始值;注意不能在类中单独写赋值语句声明和赋值必须同行。错误示例class A{ int value; value 20; // 写法非法 }取值原则仅定义业务所需的属性即可无需罗列对象所有特征。默认初始值成员变量拥有系统默认值规则如下| 数据类型 | 默认值 || ---- | ---- || 整数类型byte/short/int/long | 0 || 浮点类型float/double | 0.0 || 字符类型char | 空字符 \u0000 || 布尔类型boolean | false || 引用类型 | null |作用范围当前整个类内有效。命名规则同一个类中成员变量名不能重复成员变量可与局部变量重名同名时方法内优先使用局部变量。成员变量 vs 局部变量对比项局部变量成员变量定义位置方法 / 代码块内部类内部、方法外部默认值无默认值必须先赋值再使用自带系统默认值作用范围从定义处开始到所属代码块结束整个类范围内有效命名冲突作用域重叠时不允许重名可与局部变量重名局部变量优先级更高二成员方法描述对象具备的功能与行为也叫成员方法。定义位置类内部、其他方法外部。语法格式修饰符 返回值类型 方法名(形参列表){ // 方法体功能实现代码 }区别于静态函数普通成员方法不需要加static。组成拆分方法声明修饰符、返回值类型、方法名、形参列表、异常用来表明方法功能方法实现大括号内的代码完成具体业务逻辑。补充一个方法可使用多个修饰符修饰符顺序无要求。方法重载overload概念同一个类中多个方法名相同但形参列表不同的一组方法。判定规则必须同时满足方法名完全一致形参列表不同参数个数、数据类型、参数顺序任意一项不同即可仅参数名不同不构成重载。 补充返回值类型、修饰符、异常不参与重载判定。调用规则 程序根据传入的实参自动匹配对应方法优先精确匹配匹配失败则向上兼容匹配全部匹配失败则编译报错。作用提升代码通用性与灵活性避免定义大量功能相似、名称不同的方法。三构造方法构造器类中一类特殊方法主要用于创建对象并给成员变量初始化赋值。核心特点方法名必须和类名完全一致无返回值连void也不能书写支持方法重载不能手动直接调用。修饰符 类名(形参列表){ // 初始化代码 }执行规则创建对象时由 JVM 自动调用一个对象创建过程中构造方法仅执行一次若类中未手动定义任何构造方法JVM 会自动提供一个公共无参构造方法若类中已定义有参构造方法JVM 不再自动生成默认无参构造。开发建议 常规开发中建议同时提供无参构造方法和有参构造方法有参构造的参数一般对应类的核心属性。四、对象的创建与使用1. 创建对象语法类名 对象名 new 类名();2. 对象访问成员操作属性// 赋值 对象名.属性名 值; // 取值 对象名.属性名;2.调用方法对象名.方法名(实参列表);五、this 关键字开发常用this代表当前对象主要分两种用法。1. this. 访问成员用法在成员方法、构造方法中使用指代当前对象的成员。this.属性名访问当前对象的成员变量this.方法名(实参)调用当前对象的成员方法。说明多数场景下this.可省略当成员变量与局部变量重名时必须用this.区分成员变量。2. this () 调用本类构造方法用法仅能在构造方法中使用用于调用本类其他构造方法。this()调用本类无参构造方法this(实参)调用本类有参构造方法。强制规则必须写在构造方法内第一行有效代码位置禁止循环递归调用多个构造方法不能互相嵌套调用。六、对象创建流程分配堆内存空间为所有成员变量赋予默认初始值执行属性显式赋值二次赋值执行构造方法三次赋值完成对象最终初始化。七、引用理解难点概念存储对象地址的变量称为引用类型变量简称引用。存储内容引用变量存的是对象在堆内存中的首地址。引用声明类名 引用名; // 示例 Worker w;空指针问题 若引用赋值为null代表该引用没有指向任何对象此时通过该引用调用属性 / 方法编译正常运行抛出NullPointerException空指针异常。赋值区别引用之间互相赋值传递的是对象堆内存地址多个引用可指向同一个对象基本数据类型变量赋值传递的是具体数值变量之间互不影响。使用场景引用可作为方法形参、方法返回值、数组元素使用。补充JVM 内存分配简述栈空间存储局部变量、引用变量存放对象地址堆空间使用new创建的实体对象全部存放在堆中对象的属性也在堆内存。