【JavaSE语法】面向对象初步认识

目录

一,引言

二,什么是面向对象

[1. 核心](#1. 核心)

[2. 两个关键](#2. 两个关键)

[3. 四大特性](#3. 四大特性)

三,对比面向过程


一,引言

众所周知,面向对象作为目前软件开发领域的主流思想,凭借封装、继承、多态三大核心特性,实现了对现实世界实体的精准抽象与高效建模。相较于传统面向过程的开发模式,面向对象思想能够显著提升代码的复用性、可读性与可维护性,降低大型复杂系统的开发与迭代成本。

二,什么是面向对象

Java是一门纯粹的面向对象的语言,在面向对象的世界中,一切皆为对象。用大白话讲,面向对象就是把编程这件事,变成 "模拟现实世界"。就像玩过家家,把现实里的东西(比如大象、手机、人)搬进代码里,让它们像现实中一样 "有特征、能做事",还能互相互动。

1. 核心

把"东西"变成代码中的"对象"

现实里的任何东西,都能拆成两部分:

  • 它有啥(属性):比如大象有体重、年龄、颜色;手机有品牌、电量、尺寸;
  • 它能做啥(行为):比如大象会叫、会走路;手机会打电话、会亮屏。

面向对象就是把这些 "东西" 做成代码里的 "对象"------ 比如先造一个 "冰箱对象",它自带 "长宽高、能耗" 的属性,也自带 "冰冻、保鲜" 的行为,想用的时候直接喊它做事就行(比如让冰箱存储食物),不用像以前那样一步步写 "怎么保鲜,如何保鲜"。

2. 两个关键

"类" 是模板,"对象" 是具体的东西

比如你想造 10 个冰箱,总不能每次都重新设计冰箱的电路图、构造、外观吧?

  • 类:就是 "冰箱的模板",先定好 "所有冰箱都有规格、都能制冷",相当于画一张冰箱的设计图;
  • 对象:就是按模板造出来的 "具体某一个冰箱"------ 比如模板是 "冰箱类",造出来的 "小明家的 双开门冰箱""小红家的保鲜冰箱",都是具体的对象。

Java 里 "一切皆对象",意思就是:除了数字、字符这种最基础的东西,代码里的所有玩意儿(比如字符串、数组、你写的冰箱),都是按 "类" 造出来的对象。

3. 四大特性

这是面向对象的 "规矩",让代码更像现实:

  • 封装:给对象的 "隐私" 上锁。比如冰箱的制冷温度不能随便改(总不能设成 -100 度吧,会冻坏压缩机),只能通过 "调温" 的专用方法改;
  • 继承:偷懒又统一。比如 "双开门冰箱" 不用重新写 "能制冷、能保鲜",直接继承 "冰箱模板" 的这些本事,只加自己特有的(比如 "分区独立控温"),就像儿子继承爸爸的长相,又有自己的特点;
  • 多态:同一行为,各有各的样。比如都是 "制冷",双开门冰箱是 "分区慢制冷",保鲜冰箱是 "恒温快速制冷",但你不用管具体是谁,只要喊 "冰箱开始制冷",它们就会按自己的方式制冷,就像同样是 "吃饭",人用筷子,猫用爪子;
  • 抽象:抓重点,不纠结细节。比如所有冰箱都 "会制冷",但模板里只说 "冰箱要会制冷",不管具体怎么制冷 ------ 具体是 "分区制冷" 还是 "整体制冷",让双开门冰箱、保鲜冰箱自己定,就像你只要求 "学生要写作业",不管是写数学还是语文。

三,对比面向过程

  • 面向过程:像做番茄炒蛋的菜谱,一步一步写 "1. 切番茄 2. 打鸡蛋 3. 下锅炒",关注步骤;
  • 面向对象:像直接喊 "厨师做番茄炒蛋"------ 厨师是一个 "对象",他自带 "会切菜、会炒菜" 的本事,你只需要告诉对象做什么,不用管他具体怎么切、怎么炒。
相关推荐
鬼手点金18 小时前
opencode-rules 插件
java·开发语言·前端·人工智能·chrome·git·github
paopaokaka_luck19 小时前
滑雪场管理系统(AI智能助手流式对话,ECharts 运营数据分析、教练、雪具与场地一体化预约,钱包支付退款、订单核销与服务评价)
java·人工智能·spring boot·网络协议·数据分析·echarts
Wang's Blog19 小时前
Java 项目实战: 交友项目 - Dubbo 的内部结构与一次调用的完整链路
java·dubbo
Wang's Blog19 小时前
Java 项目实战: 交友项目 - Dubbo 入门引导
java·dubbo·交友
蜗牛互联网20 小时前
Python Agent工具调用的白名单、参数校验与审批门禁
java·服务器·前端·人工智能·后端·python
SL_staff20 小时前
当规则引擎开始‘懂业务’:JVS-Rules金融风控四大原生能力拆解
java·python·全栈
Shaoshing20 小时前
前缀和与差分
java·数据结构·算法·前缀和·差分
dd聊技术21 小时前
Prompt 从代码常量搬进数据库:改一句话,不用再发一次版
java·后端
ly768921 小时前
Spring Data MongoDB 批量写入实践:BulkOperations 批大小与写关注权衡
java·mongodb·spring·批量写入·bulkoperations·写关注·mongotemplate
TAKETODAY21 小时前
Netty 是怎么把 HTTP 请求交给 MVC 的?一个请求的完整链路
java·netty