目录
[1. 核心](#1. 核心)
[2. 两个关键](#2. 两个关键)
[3. 四大特性](#3. 四大特性)
一,引言
众所周知,面向对象作为目前软件开发领域的主流思想,凭借封装、继承、多态三大核心特性,实现了对现实世界实体的精准抽象与高效建模。相较于传统面向过程的开发模式,面向对象思想能够显著提升代码的复用性、可读性与可维护性,降低大型复杂系统的开发与迭代成本。
二,什么是面向对象
Java是一门纯粹的面向对象的语言,在面向对象的世界中,一切皆为对象。用大白话讲,面向对象就是把编程这件事,变成 "模拟现实世界"。就像玩过家家,把现实里的东西(比如大象、手机、人)搬进代码里,让它们像现实中一样 "有特征、能做事",还能互相互动。
1. 核心
把"东西"变成代码中的"对象"
现实里的任何东西,都能拆成两部分:
- 它有啥(属性):比如大象有体重、年龄、颜色;手机有品牌、电量、尺寸;
- 它能做啥(行为):比如大象会叫、会走路;手机会打电话、会亮屏。
面向对象就是把这些 "东西" 做成代码里的 "对象"------ 比如先造一个 "冰箱对象",它自带 "长宽高、能耗" 的属性,也自带 "冰冻、保鲜" 的行为,想用的时候直接喊它做事就行(比如让冰箱存储食物),不用像以前那样一步步写 "怎么保鲜,如何保鲜"。
2. 两个关键
"类" 是模板,"对象" 是具体的东西
比如你想造 10 个冰箱,总不能每次都重新设计冰箱的电路图、构造、外观吧?
- 类:就是 "冰箱的模板",先定好 "所有冰箱都有规格、都能制冷",相当于画一张冰箱的设计图;
- 对象:就是按模板造出来的 "具体某一个冰箱"------ 比如模板是 "冰箱类",造出来的 "小明家的 双开门冰箱""小红家的保鲜冰箱",都是具体的对象。
Java 里 "一切皆对象",意思就是:除了数字、字符这种最基础的东西,代码里的所有玩意儿(比如字符串、数组、你写的冰箱),都是按 "类" 造出来的对象。
3. 四大特性
这是面向对象的 "规矩",让代码更像现实:
- 封装:给对象的 "隐私" 上锁。比如冰箱的制冷温度不能随便改(总不能设成 -100 度吧,会冻坏压缩机),只能通过 "调温" 的专用方法改;
- 继承:偷懒又统一。比如 "双开门冰箱" 不用重新写 "能制冷、能保鲜",直接继承 "冰箱模板" 的这些本事,只加自己特有的(比如 "分区独立控温"),就像儿子继承爸爸的长相,又有自己的特点;
- 多态:同一行为,各有各的样。比如都是 "制冷",双开门冰箱是 "分区慢制冷",保鲜冰箱是 "恒温快速制冷",但你不用管具体是谁,只要喊 "冰箱开始制冷",它们就会按自己的方式制冷,就像同样是 "吃饭",人用筷子,猫用爪子;
- 抽象:抓重点,不纠结细节。比如所有冰箱都 "会制冷",但模板里只说 "冰箱要会制冷",不管具体怎么制冷 ------ 具体是 "分区制冷" 还是 "整体制冷",让双开门冰箱、保鲜冰箱自己定,就像你只要求 "学生要写作业",不管是写数学还是语文。
三,对比面向过程
- 面向过程:像做番茄炒蛋的菜谱,一步一步写 "1. 切番茄 2. 打鸡蛋 3. 下锅炒",关注步骤;
- 面向对象:像直接喊 "厨师做番茄炒蛋"------ 厨师是一个 "对象",他自带 "会切菜、会炒菜" 的本事,你只需要告诉对象做什么,不用管他具体怎么切、怎么炒。