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

目录

一,引言

二,什么是面向对象

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

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

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

三,对比面向过程


一,引言

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

二,什么是面向对象

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

1. 核心

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

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

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

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

2. 两个关键

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

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

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

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

3. 四大特性

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

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

三,对比面向过程

  • 面向过程:像做番茄炒蛋的菜谱,一步一步写 "1. 切番茄 2. 打鸡蛋 3. 下锅炒",关注步骤;
  • 面向对象:像直接喊 "厨师做番茄炒蛋"------ 厨师是一个 "对象",他自带 "会切菜、会炒菜" 的本事,你只需要告诉对象做什么,不用管他具体怎么切、怎么炒。
相关推荐
二哈赛车手2 小时前
新人笔记---ApiFox的一些常见使用出错
java·笔记·spring
栗子~~3 小时前
JAVA - 二层缓存设计(本地缓冲+redis缓冲+广播所有本地缓冲失效) demo
java·redis·缓存
YDS8293 小时前
DeepSeek RAG&MCP + Agent智能体项目 —— RAG知识库的搭建和接口实现
java·ai·springboot·agent·rag·deepseek
未若君雅裁4 小时前
MyBatis 一级缓存、二级缓存与清理机制
java·缓存·mybatis
AI人工智能+电脑小能手5 小时前
【大白话说Java面试题 第65题】【JVM篇】第25题:谈谈对 OOM 的认识
java·开发语言·jvm
阿维的博客日记5 小时前
Nacos 为什么能让配置动态生效?(涉及 @RefreshScope 注解)
java·spring
雨辰AI5 小时前
SpringBoot3 + 人大金仓读写分离 + 分库分表 + 集群高可用 全栈实战
java·数据库·mysql·政务
辰海Coding7 小时前
MiniSpring框架学习-完成的 IoC 容器
java·spring boot·学习·架构
小小编程路7 小时前
C++ 多线程与并发
java·jvm·c++
AI视觉网奇7 小时前
linux 检索库 判断库是否支持
java·linux·服务器