Java基础,Java 面向对象(OOP)核心知识点

📅 2026/6/17 10:45:40
Java基础,Java 面向对象(OOP)核心知识点
前言Java 是一门纯面向对象的编程语言面向对象编程OOPObject Oriented Programming是 Java 编程的核心思想也是区分新手程序员和入门程序员的关键知识点。面向对象颠覆了传统面向过程「步骤化、流水线」的编程思维将程序中所有事物抽象为对象通过对象的属性和行为完成业务逻辑具备高复用、低耦合、易维护的特点。本文将从核心思想、类与对象、三大特性、核心关键字、构造方法、代码块、内部类、常用工具类、易错点全方位总结 Java 面向对象知识点适合零基础学习、面试复习、CSDN 博客收藏。一、面向对象核心思想1.1 什么是面向对象编程思想分为两种面向过程POP聚焦「怎么做」拆分具体步骤一步一步执行代表语言C 语言。适合简单、固定流程的程序。面向对象OOP聚焦「谁来做」将现实世界的事物抽象成程序中的对象通过调用对象的功能完成需求。适合复杂、大型、可迭代维护的项目。1.2 面向对象三大核心思维封装隐藏内部细节暴露对外接口保证数据安全继承复用已有代码实现代码拓展多态一个行为多种实现提升程序扩展性1.3 万物皆对象Java 中所有内容都可以抽象为对象静态特征属性成员变量如人的姓名、年龄动态行为方法成员方法如人吃饭、跑步二、类与对象OOP 基础核心类和对象是面向对象的最基本单元所有 OOP 特性都基于类和对象实现。2.1 类与对象的关系类Class模板、抽象概念是对一类事物的共性描述蓝图对象Object实例、具体个体是类的具体实现根据蓝图造的实物关系总结类是对象的模板对象是类的实例一个类可以创建无数个对象。2.2 类的定义格式// 标准类结构public class 类名 {// 1. 成员变量属性描述事物的特征修饰符 数据类型 变量名;// 2. 构造方法创建对象、初始化成员变量修饰符 类名(参数列表){}// 3. 成员方法行为描述事物的功能修饰符 返回值类型 方法名(参数列表){方法体;return 返回值;}// 4. 代码块、内部类拓展内容}2.3 对象的创建与使用创建对象语法java运行// 固定格式类名 对象名 new 类名(); Student stu new Student();对象调用属性和方法java运行// 调用成员变量 stu.name 张三; stu.age 20; // 调用成员方法 stu.study();2.4 成员变量 vs 局部变量高频面试题表格区别成员变量局部变量定义位置类中、方法外方法内、代码块内、参数列表内存位置堆内存栈内存生命周期随对象创建而生对象销毁而消失随方法调用而生方法结束而销毁默认值有默认初始值int0Stringnull无默认值必须手动赋值才能使用修饰符可以使用 private、static 等修饰只能用 final 修饰三、构造方法对象初始化核心3.1 构造方法特点方法名必须和类名完全一致没有返回值类型连 void 都没有创建对象时自动调用用于初始化成员变量可以重载一个类可以有多个构造方法3.2 构造方法分类无参构造默认空参无参数、无逻辑若类中没有手动定义任何构造方法编译器自动生成默认无参构造若手动定义了有参构造默认无参构造会被覆盖必须手动补充有参构造自定义参数创建对象时直接给属性赋值简化代码3.3 标准代码示例java运行public class Student { // 成员变量 private String name; private int age; // 1. 无参构造 public Student(){} // 2. 有参构造重载 public Student(String name, int age){ this.name name; this.age age; } // getter setter 方法 public String getName() { return name; } public void setName(String name) { this.name name; } public int getAge() { return age; } public void setAge(int age) { this.age age; } }四、面向对象三大特性核心重难点4.1 封装Encapsulation—— 安全性核心作用隐藏类的内部数据细节仅对外提供访问接口防止外部随意修改数据保证数据安全性和代码统一性。实现步骤使用private修饰成员变量私有化外部无法直接访问对外提供getter()获取值、setter()设置值方法在 setter 方法中可以添加数据校验逻辑核心优势数据安全限制非法数据赋值代码解耦内部逻辑修改不影响外部调用4.2 继承Inheritance—— 复用性核心概念子类派生类继承父类超类 / 基类的非私有成员变量和方法实现代码复用减少冗余代码。语法格式java运行public class 子类名 extends 父类名{}继承核心特点Java单继承一个子类只能有一个直接父类一个父类可以有多个子类支持多层继承A 继承 BB 继承 C链式继承子类无法继承private 成员、构造方法、本类专属方法方法重写Override子类对父类非私有、非 final、非 static的方法进行重新实现适配子类专属业务。重写规则方法名、参数列表、返回值必须和父类一致访问权限大于等于父类权限public protected 默认权限抛出异常范围小于等于父类4.3 多态Polymorphism—— 扩展性核心概念同一行为不同实现。父类引用指向子类对象调用方法时执行子类的重写逻辑是面向对象最灵活的特性。多态实现前提存在继承关系存在方法重写父类引用指向子类对象向上转型核心代码演示java运行// 父类 class Animal{ public void eat(){} } // 子类1 class Dog extends Animal{ Override public void eat() { System.out.println(狗狗吃狗粮); } } // 子类2 class Cat extends Animal{ Override public void eat() { System.out.println(猫咪吃猫粮); } } // 测试多态 public class Test{ public static void main(String[] args) { // 父类引用指向子类对象 Animal a1 new Dog(); Animal a2 new Cat(); a1.eat(); // 执行Dog重写的方法 a2.eat(); // 执行Cat重写的方法 } }多态核心规则成员方法编译看父类运行看子类动态绑定成员变量编译看父类运行看父类无多态效果向上转型 向下转型向上转型自动转换子类对象 → 父类引用多态核心自动完成向下转型强制转换父类引用 → 子类对象用于调用子类独有方法语法子类 对象 (子类)父类引用;搭配instanceof判断类型避免类型转换异常五、面向对象核心修饰符5.1 权限修饰符访问范围从小到大表格修饰符本类同包子类任意包private私有的✅❌❌❌默认不写✅✅❌❌protected受保护的✅✅✅❌public公共的✅✅✅✅开发规范成员变量统一 private方法、类统一 public5.2 static 静态关键字修饰内容成员变量、成员方法、代码块核心特点属于类不属于对象随类加载而加载优先于对象存在被所有对象共享一处修改处处生效可以通过「类名。静态变量 / 静态方法」直接调用无需创建对象静态与非静态区别静态方法只能访问静态成员不能使用 this、super非静态方法可以访问静态、非静态所有成员5.3 final 最终关键字修饰变量变量变成常量只能赋值一次不可修改修饰方法方法禁止重写修饰类类禁止被继承如 String、Math 类5.4 this super 关键字this 关键字代表当前对象区分成员变量和局部变量this.变量名调用本类构造方法this()必须放在构造方法第一行代表当前对象本身super 关键字代表父类对象访问父类成员变量super.变量名调用父类成员方法super.方法名()调用父类构造方法super()默认隐含必须第一行六、代码块6.1 局部代码块定义在方法内限制变量生命周期减少内存占用6.2 构造代码块定义在类中、方法外每次创建对象都会执行优先于构造方法执行用于统一初始化对象属性6.3 静态代码块被 static 修饰类加载时只执行一次优先于所有代码执行用于初始化静态资源配置、数据加载执行优先级静态代码块 构造代码块 构造方法 普通方法七、抽象类与接口OOP 进阶7.1 抽象类abstract核心特点用abstract修饰不能实例化只能被继承可以包含普通方法、构造方法、静态方法、抽象方法抽象方法无方法体必须被子类全部重写有抽象方法的类一定是抽象类抽象类不一定有抽象方法7.2 接口interfaceJava8 前后接口区别面试重点Java7 及以前只有公共抽象方法、公共静态常量Java8新增默认方法default、静态方法Java9新增私有方法接口核心特点接口是行为规范极度解耦多实现一个类可以实现多个接口解决单继承局限接口无构造方法不能实例化实现类必须重写接口所有抽象方法抽象类 vs 接口抽象类模板复用有属性、构造、普通方法单继承接口规则约束无成员变量常量除外多实现八、内部类定义在类内部的类分为四种成员内部类类中方法外依赖外部类对象局部内部类方法内定义仅当前方法可用静态内部类static 修饰不依赖外部类匿名内部类无类名、一次性使用简化接口 / 抽象类实现代码开发最常用九、Object 根类java.lang.Object是所有类的父类所有类默认直接 / 间接继承 Object包含多个核心通用方法toString()返回对象字符串信息必须重写默认打印地址值equals()比较两个对象是否相等必须重写默认比较地址hashCode()返回对象哈希值重写 equals 必须重写 hashCodegetClass()获取对象的字节码对象十、常见面试易错点总结重写和重载区别重载是方法名相同参数不同编译多态重写是子类覆盖父类方法运行多态静态方法没有重写只有隐藏成员变量无多态只有成员方法有多态子类构造方法默认第一行隐含super()必须先初始化父类private、final、static 方法不能重写抽象类可以有构造方法供子类初始化父类成员使用接口变量默认是public static final常量总结Java 面向对象的核心就是四大核心类与对象、封装、继承、多态所有高级特性框架、集合、Spring全部基于 OOP 思想实现。封装保安全继承省代码多态提扩展