当前位置: 首页 > news >正文

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

前言

Java 是一门纯面向对象的编程语言,面向对象编程(OOP,Object Oriented Programming)是 Java 编程的核心思想,也是区分新手程序员和入门程序员的关键知识点。

面向对象颠覆了传统面向过程「步骤化、流水线」的编程思维,将程序中所有事物抽象为对象,通过对象的属性和行为完成业务逻辑,具备高复用、低耦合、易维护的特点。

本文将从核心思想、类与对象、三大特性、核心关键字、构造方法、代码块、内部类、常用工具类、易错点全方位总结 Java 面向对象知识点,适合零基础学习、面试复习、CSDN 博客收藏。

一、面向对象核心思想

1.1 什么是面向对象?

编程思想分为两种:

  1. 面向过程(POP):聚焦「怎么做」,拆分具体步骤,一步一步执行,代表语言:C 语言。适合简单、固定流程的程序。
  2. 面向对象(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 局部变量(高频面试题)

表格

区别成员变量局部变量
定义位置类中、方法外方法内、代码块内、参数列表
内存位置堆内存栈内存
生命周期随对象创建而生,对象销毁而消失随方法调用而生,方法结束而销毁
默认值有默认初始值(int=0,String=null)无默认值,必须手动赋值才能使用
修饰符可以使用 private、static 等修饰只能用 final 修饰

三、构造方法(对象初始化核心)

3.1 构造方法特点

  1. 方法名必须和类名完全一致
  2. 没有返回值类型(连 void 都没有)
  3. 创建对象时自动调用,用于初始化成员变量
  4. 可以重载,一个类可以有多个构造方法

3.2 构造方法分类

  1. 无参构造:默认空参,无参数、无逻辑

    • 若类中没有手动定义任何构造方法,编译器自动生成默认无参构造
    • 若手动定义了有参构造,默认无参构造会被覆盖,必须手动补充
  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)—— 安全性

核心作用

隐藏类的内部数据细节,仅对外提供访问接口,防止外部随意修改数据,保证数据安全性和代码统一性。

实现步骤
  1. 使用private修饰成员变量(私有化,外部无法直接访问)
  2. 对外提供getter()(获取值)、setter()(设置值)方法
  3. 在 setter 方法中可以添加数据校验逻辑
核心优势
  • 数据安全:限制非法数据赋值
  • 代码解耦:内部逻辑修改不影响外部调用

4.2 继承(Inheritance)—— 复用性

核心概念

子类(派生类)继承父类(超类 / 基类)的非私有成员变量和方法,实现代码复用,减少冗余代码。

语法格式

java

运行

public class 子类名 extends 父类名{}
继承核心特点
  1. Java单继承:一个子类只能有一个直接父类,一个父类可以有多个子类
  2. 支持多层继承:A 继承 B,B 继承 C(链式继承)
  3. 子类无法继承:private 成员、构造方法、本类专属方法
方法重写(Override)

子类对父类非私有、非 final、非 static的方法进行重新实现,适配子类专属业务。

重写规则

  • 方法名、参数列表、返回值必须和父类一致
  • 访问权限大于等于父类权限(public > protected > 默认权限)
  • 抛出异常范围小于等于父类

4.3 多态(Polymorphism)—— 扩展性

核心概念

同一行为,不同实现。父类引用指向子类对象,调用方法时执行子类的重写逻辑,是面向对象最灵活的特性。

多态实现前提
  1. 存在继承关系
  2. 存在方法重写
  3. 父类引用指向子类对象(向上转型)
核心代码演示

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重写的方法 } }
多态核心规则
  • 成员方法:编译看父类,运行看子类(动态绑定)
  • 成员变量:编译看父类,运行看父类(无多态效果)
向上转型 & 向下转型
  1. 向上转型(自动转换):子类对象 → 父类引用,多态核心,自动完成
  2. 向下转型(强制转换):父类引用 → 子类对象,用于调用子类独有方法
    • 语法:子类 对象 = (子类)父类引用;
    • 搭配instanceof判断类型,避免类型转换异常

五、面向对象核心修饰符

5.1 权限修饰符(访问范围从小到大)

表格

修饰符本类同包子类任意包
private(私有的)
默认(不写)
protected(受保护的)
public(公共的)

开发规范:成员变量统一 private,方法、类统一 public

5.2 static 静态关键字

修饰内容:成员变量、成员方法、代码块
核心特点
  1. 属于类,不属于对象,随类加载而加载,优先于对象存在
  2. 被所有对象共享,一处修改,处处生效
  3. 可以通过「类名。静态变量 / 静态方法」直接调用,无需创建对象
静态与非静态区别
  • 静态方法:只能访问静态成员,不能使用 this、super
  • 非静态方法:可以访问静态、非静态所有成员

5.3 final 最终关键字

  1. 修饰变量:变量变成常量,只能赋值一次,不可修改
  2. 修饰方法:方法禁止重写
  3. 修饰类:类禁止被继承(如 String、Math 类)

5.4 this & super 关键字

this 关键字(代表当前对象)
  1. 区分成员变量和局部变量:this.变量名
  2. 调用本类构造方法:this()(必须放在构造方法第一行)
  3. 代表当前对象本身
super 关键字(代表父类对象)
  1. 访问父类成员变量:super.变量名
  2. 调用父类成员方法:super.方法名()
  3. 调用父类构造方法:super()(默认隐含,必须第一行)

六、代码块

6.1 局部代码块

定义在方法内,限制变量生命周期,减少内存占用

6.2 构造代码块

定义在类中、方法外,每次创建对象都会执行,优先于构造方法执行,用于统一初始化对象属性

6.3 静态代码块

被 static 修饰,类加载时只执行一次,优先于所有代码执行,用于初始化静态资源(配置、数据加载)

执行优先级:静态代码块 > 构造代码块 > 构造方法 > 普通方法

七、抽象类与接口(OOP 进阶)

7.1 抽象类(abstract)

核心特点
  1. abstract修饰,不能实例化,只能被继承
  2. 可以包含普通方法、构造方法、静态方法、抽象方法
  3. 抽象方法:无方法体,必须被子类全部重写
  4. 有抽象方法的类一定是抽象类,抽象类不一定有抽象方法

7.2 接口(interface)

Java8 前后接口区别(面试重点)

  1. Java7 及以前:只有公共抽象方法、公共静态常量
  2. Java8:新增默认方法(default)、静态方法
  3. Java9:新增私有方法
接口核心特点
  1. 接口是行为规范,极度解耦
  2. 多实现:一个类可以实现多个接口,解决单继承局限
  3. 接口无构造方法,不能实例化
  4. 实现类必须重写接口所有抽象方法
抽象类 vs 接口
  • 抽象类:模板复用,有属性、构造、普通方法,单继承
  • 接口:规则约束,无成员变量(常量除外),多实现

八、内部类

定义在类内部的类,分为四种:

  1. 成员内部类:类中方法外,依赖外部类对象
  2. 局部内部类:方法内定义,仅当前方法可用
  3. 静态内部类:static 修饰,不依赖外部类
  4. 匿名内部类无类名、一次性使用,简化接口 / 抽象类实现代码,开发最常用

九、Object 根类

java.lang.Object所有类的父类,所有类默认直接 / 间接继承 Object,包含多个核心通用方法:

  1. toString():返回对象字符串信息,必须重写(默认打印地址值)
  2. equals():比较两个对象是否相等,必须重写(默认比较地址)
  3. hashCode():返回对象哈希值,重写 equals 必须重写 hashCode
  4. getClass():获取对象的字节码对象

十、常见面试易错点总结

  1. 重写和重载区别:重载是方法名相同参数不同(编译多态),重写是子类覆盖父类方法(运行多态)
  2. 静态方法没有重写,只有隐藏
  3. 成员变量无多态,只有成员方法有多态
  4. 子类构造方法默认第一行隐含super(),必须先初始化父类
  5. private、final、static 方法不能重写
  6. 抽象类可以有构造方法,供子类初始化父类成员使用
  7. 接口变量默认是public static final常量

总结

Java 面向对象的核心就是四大核心:类与对象、封装、继承、多态,所有高级特性(框架、集合、Spring)全部基于 OOP 思想实现。

  • 封装:保安全
  • 继承:省代码
  • 多态:提扩展
http://www.zskr.cn/news/1541048.html

相关文章:

  • ARM Cortex-M3 技术解析:核寄存器R1-R15介绍及使用
  • Boss-Key:Windows平台终极隐私保护神器,一键隐藏窗口的完整指南
  • 成都黄金回收指南:六家靠谱店铺推荐与变现攻略 - 清奢黄金上门回收
  • 天津包包回收门店榜单|禹竞名奢汇稳居榜首,LV爱马仕变现优选 - 名奢变现站
  • ip2region实战教程:构建高效离线IP定位系统的深度解析
  • 2026京东卡e卡回收全攻略,让闲置卡“活”起来,变现更轻松 - 京顺回收
  • 抖音保存相册怎么去除抖音号实测5类去水印方案,官方原生方法+第三方工具避坑指南 - 科技热点发布
  • 闲置黄金怎么卖最划算2026黄金回收计价方式萍乡正规回收店 - 润富黄金回收
  • 2026 年 6 月最新 | 国内工业制氮机厂家实力榜单 实测对比与选购指南 - 商业新知
  • 外贸老板必看:Google SGE上线后,传统SEO排名还有用吗?
  • 河北折叠式仓储笼厂家排行:实测参数对比解析 - 奔跑123
  • 2026年东莞立式注塑机生产厂家深度测评:如何匹配最佳制造方案? - 资讯快报
  • AI建站是什么意思?和传统模板建站有什么区别 - 凡科杰建云
  • 飞书机器人接入 OpenClaw 完整落地部署指南(含安装包)
  • 图片怎么转PDF?2026手机电脑免费方法全攻略(保姆级教程) - AI测评专家
  • 冰酒配餐Top榜:这8种搭配按体验从高到低排名 - 热点速览
  • 2026萍乡各区县黄金回收门店盘点大盘价回收无额外扣费 - 润富黄金回收
  • 计算机Java毕设实战-【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 水槽哪个牌子售后好?深耕厨造三十载,欧琳凭全链路服务筑牢用户信赖 - 936品牌测评网
  • 宁波出手钻饰干货,2026奢品门店,钻石无隐形扣费 - 名奢变现站
  • 佛山黄金回收看资质还是看价格?中立测评说真话,合扬各维度综合领先 - 奢侈品交易观察员
  • 多模态大模型手写体识别:OCR技术升级实战指南
  • 2026灞桥区别墅装修公司 实测 TOP5 高端大宅业主测评分享 - LYL仔仔
  • 阻尼器全品类技术解读:江苏泰了减震打造建筑桥梁减隔震综合解决方案 - 资讯报道
  • 海口出手香奈儿、爱马仕完整攻略,正规连锁门店无清洗费、查验费 - 开心测评
  • 三步清理微信通讯录:一键找出谁删除了你
  • 鸡粪风干设备应用价值解析:小巨人粪污设备实现环保与增收双赢 - 博客万
  • adb install和 pm install 的区别是什么?
  • 2026 肥东县防水补漏机构甄选榜单|住建实测全域靠谱修缮品牌 TOP5 及片区避坑指南 - 宅安选房屋修缮
  • 数组相关知识点(四)