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

Java面向对象核心知识点总结(类与对象、构造方法、Getter/Setter、内存执行机制)

一、面向对象基础思想

1. 什么是面向对象?

Java 是一门纯面向对象语言,核心思想:将现实事物抽象成类,通过创建对象完成业务交互

区别于面向过程(侧重步骤、函数),面向对象侧重模板、实体、行为交互,代码复用性、维护性、扩展性更强。

2. 面向对象四大核心特征

  • 封装:隐藏内部数据,对外提供安全访问入口

  • 继承:实现代码复用,建立类的层级关系

  • 多态:同一行为不同实现,提高程序扩展性

  • 抽象:抽取共性特征,忽略细节

3. 类与对象的核心关系

  • 类(Class):模板、蓝图,定义属性(成员变量)和行为(成员方法)

  • 对象(Object):类的实例,是模板具体化出来的个体

一句话总结:类是抽象模板,对象是具体实例

二、构造方法与对象创建原理

1. 对象创建本质

通过new 类名()创建对象,本质是:向JVM申请堆内存、实例化对象、初始化成员变量、调用构造方法

2. 静态方法与非静态方法区别

  • 非静态方法:属于对象,必须通过对象调用

  • 静态方法(static):属于类,直接通过类名调用,无需创建对象

三、访问器(Getter)与更改器(Setter)

1. 作用定义

  • Getter(访问器):读取私有成员变量的值

  • Setter(更改器):修改私有成员变量的值

2. 核心意义(考试/面试重点)

将成员变量私有化(private),并提供 Getter/Setter,目的有两个:

  1. 实现封装:禁止外部直接篡改核心数据,保护类内部状态

  2. 数据校验:在 Setter 中可以加入判断逻辑,拦截非法数据,保证数据安全

这是 Java 面向对象封装特性最典型的落地写法

四、Java内存模型与程序执行流程(重难点)

1. 核心内存区域

  • 栈内存:存放局部变量、方法栈帧,方法执行完毕立即释放

  • 堆内存:存放所有 new 出来的对象、数组,由GC回收

2. 方法调用的核心规则:拷贝机制

课堂重点结论:方法调用是拷贝

每次调用方法,JVM 会在栈中开辟新栈帧,拷贝变量/引用地址,不会影响原方法栈数据。

3. 增强for循环(for-each)底层内存机制

增强 for 循环遍历数组/集合时:

  • 栈中生成临时引用变量

  • 临时变量拷贝堆中对象的地址

  • 通过地址操作原对象,因此修改属性会直接影响堆中原始对象

这也是为什么 for-each 可以修改对象属性,但不能修改数组/集合元素引用的根本原因。

五、总结

打通了 Java 面向对象的底层逻辑:从类与对象的关系对象创建与构造方法封装与Getter/Setter规范内存执行原理与for-each底层机制,让我们从“会写代码”进阶到“懂底层、懂原理”。

面向对象所有特性,最终都可以落到内存分配、引用传递、封装权限三个核心点上。

http://www.jsqmd.com/news/1144711/

相关文章:

  • 【创新未发表】Matlab实现能量谷优化算法EVO-Kmean-Transformer-BiLSTM负荷预测算法研究
  • 拉普拉斯噪声机制 (ε-DP) 实战:Python 实现 3 种敏感度计算与噪声注入
  • 终极指南:如何使用wwiseutil轻松修改Wwise音频容器
  • 工业现场LED光学测试的稳定的方法
  • Moneta Markets亿汇:风控思路的维度复盘
  • 我花了一周,把一种思考方式做成了 AI Skill
  • 抽帧与截图进阶:精确抽帧、关键帧提取与批量处理
  • 知栈怎么开始用?先按这 6 步走
  • 虚拟文化体验翻译:虚拟体验场景名称的文化适配与多语呈现
  • 图解 Skill 读书笔记(三):任务拆解、功能实现与安全边界
  • 15个实用的API设计工具,Swagger Editor替代
  • 5分钟解锁REPENTOGON:为《以撒的结合》注入无限可能的脚本扩展器
  • PDF转PPT、Markdown其实不用Token,别再浪费了
  • OBS多路推流文章_一个月真实体验
  • 同样的问题,为什么别人能解决,你却被困在原地?
  • Excelize 开源十周年,发布 2.11.0 版本
  • AI 前沿日报 | 2026年07月07日
  • Windows 证书管理:3种存储位置(个人/根/中间)的导入策略与安全影响
  • 从算法工程化角度看空间换时间策略的权衡的技术7
  • 同城运营随笔:好的投流素材,从来都不是念广告
  • D2DX:让经典暗黑破坏神2在现代PC上重获新生的终极解决方案
  • 15个实用的代码混淆工具,Python与Java
  • 松下伺服驱动器 3 种控制模式(位置/速度/转矩)接线与参数设置对比指南
  • 多模态 AI 应用开发:图片理解 + 语音交互完整实战,用 Python 打造全能助手
  • 抖音内容高效管理:从批量下载到智能归档的完整解决方案
  • lite-llm使用docker compose部署
  • Moneta Markets亿汇:服务体系的要点盘点
  • 折扣率 γ 调参实战:CartPole 环境中 5 种设置对收敛速度与稳定性的影响
  • 内存化在对账系统中的应用实践
  • 通过 pip 安装免费版本: