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

Java的魔法世界:面向对象编程(OOP)是什么?

这个嘎嘎重要


面向对象编程(OOP)是让Java像玩具世界一样,把现实中的东西变成“对象”,然后让这些对象去互动。你可以想象OOP是Java的“魔法世界”,通过创建“对象”(Object),让它们有“属性”和“行为”,相互合作完成任务。


什么是面向对象编程?

OOP是一种编程思想,它的核心是:把现实中的事物,比如“猫”、“车”或“人”,用代码表示出来,称之为对象。每个对象都有:

  • 属性(比如猫的颜色、车的品牌)
  • 行为(比如猫会叫,车能开)

在OOP中,你用这些对象来编程,解决问题就像是在管理这些“会动的玩具”。


OOP的四大基本特性
  1. 封装:把属性和行为放在一起,包裹成一个完整的对象。外面的人不能直接改动对象的内部,只有通过提供的方法才能进行操作。这就像是猫的心跳,我们看不到也不能直接影响,但可以通过它的行动来感知。

  2. 继承:就像“儿子”继承“爸爸”的特征一样,新对象可以继承已有对象的属性和行为,并在此基础上扩展。比如“猫”这个类的孩子可能是“波斯猫”。

  3. 多态:同样的行为,不同的对象可以有不同的表现。比如同样是“叫”,猫叫和狗叫是不同的。

  4. 抽象:抽象是抓住事物的本质特征,把复杂的现实简化为代码的对象。比如我们不需要知道车的内部发动机工作原理,只需要知道它可以启动和行驶。


综合例子:猫与车的OOP世界

假设你要用OOP来描述一个“猫”和“车”。你可以创建两个类,分别表示它们的属性和行为。

// 定义猫类
class Cat {String name; // 猫的名字String color; // 猫的颜色void meow() {System.out.println(name + "在喵喵叫!");}
}// 定义车类
class Car {String brand; // 车的品牌int speed;    // 车的速度void drive() {System.out.println(brand + "正在以" + speed + "公里每小时的速度行驶!");}
}

在这个例子中:

  • 猫类有两个属性:name(名字)和color(颜色),还有一个行为meow()(叫声)。
  • 车类有两个属性:brand(品牌)和speed(速度),还有一个行为drive()(行驶)。

每个类都可以创建自己的对象(也就是猫和车),然后通过对象来调用这些行为:

public class Main {public static void main(String[] args) {// 创建一个猫的对象Cat myCat = new Cat();myCat.name = "咪咪";myCat.color = "白色";myCat.meow(); // 输出:咪咪在喵喵叫!// 创建一个车的对象Car myCar = new Car();myCar.brand = "特斯拉";myCar.speed = 120;myCar.drive(); // 输出:特斯拉正在以120公里每小时的速度行驶!}
}

在这个Java的“魔法世界”里,猫和车都有自己的属性和行为,能通过代码来表现出来。这就是面向对象编程的核心思想:通过对象把现实世界的事物搬进代码里,让编程变得生动有趣!

相关文章:

Java的魔法世界:面向对象编程(OOP)是什么?

这个嘎嘎重要 面向对象编程(OOP)是让Java像玩具世界一样,把现实中的东西变成“对象”,然后让这些对象去互动。你可以想象OOP是Java的“魔法世界”,通过创建“对象”(Object),让它们有…...

软件测试笔记——接口测试

文章目录 一、概念1.接口测试流程2.URL3.HTTP协议4.RESTful5.案例介绍 二、Postman1.Postman软件2.登录接口调试-获取验证码3.登录接口调试-自动关联数据4.合同上传接口-提交请求数据5.提交参数查询6.批量执行7.接口用例设计8.断言8.参数化三、案例1.项目2.课程添加3.课程列表查…...

东方通 TongRDS V2 配置与开机自启指南及 Spring Boot 集成

东方通 TongRDS V2 配置与开机自启指南及 Spring Boot 集成 文章目录 东方通 TongRDS V2 配置与开机自启指南及 Spring Boot 集成一 简述二 配置 cfg.xml1 启用密码访问2 Spring Boot 连接 TongRDS 三 配置 TongRDS 开机自启1 配置 RdsCenter1)设置 RdsCenter.servi…...

在 VS Code 中调试 Tensor 形状不显示的问题及解决方案

文章目录 常见问题解决方案1. 定制类包装和 __repr__ 方法 解释如何应用总结 在使用 VS Code 调试 PyTorch 代码时,可能会遇到一个常见问题:调试时 variables 窗口中不显示 Tensor 的形状信息。这会使得调试时观察数据的结构变得不便,尤其是在…...

Linux 时间获取全面总结

1. 引言 在Linux操作系统中,获取时间是一个基本且重要的功能。本文旨在全面总结Linux系统中获取时间的方法,包括命令行工具和编程接口,帮助读者深入理解Linux时间管理的机制。 2. 命令行工具 2.1 date 命令 date 命令是Linux中最常用的命…...

SQL 自学:游标(Cursors)的理解与应用

在 SQL 中,游标(Cursor)是一种用于处理从数据库中检索出的多行数据的机制。它允许我们逐行地处理查询结果集,而不是一次性处理整个结果集。 一、游标是什么 游标可以看作是一个指向结果集的指针。通过游标,我们可以在…...

IO多路复用概述与epoll简介

一、引言 在网络编程中,高并发的场景下处理大量连接请求是一项挑战。传统的阻塞式IO模型会让线程在等待数据的过程中陷入停顿,导致系统效率低下。为了解决这个问题,IO多路复用应运而生。它允许一个线程同时监听多个文件描述符(如…...

关于region_to_label算子的想法

1,定义:将区域进行编码 2,如何做到的:底层逻辑应该是paint_region。通过一个小的循环,按顺序将区域从灰度值1开始11的往上喷。 3,有什么作用:目前能用到的,是有字典的作用&#xff0…...

uni-app 实现好看易用的抽屉效果

在移动应用开发中,抽屉效果是一种常用的用户界面设计,它能有效地节省空间,同时提供导航和其他功能。本文将介绍如何在uni-app中实现一个好看且易用的抽屉效果,帮助你提升应用的用户体验。 一、什么是抽屉效果? 抽屉效…...

PowerShell 脚本 比较两文件差异(带粗狂进度条)并汇总输出

一上来就放代码 function Compare-FileHex {param ([Parameter(Mandatory$true)][string]$SourceFile,[Parameter(Mandatory$true)][string]$CompareFile,[Parameter(Mandatory$false)][string]$OutputFile,[Parameter(Mandatory$false)][int]$BufferSize 1MB)function Forma…...

学习 UE5 的一些前置操作总结

随着 Unity, Godot 这些引擎都玩抽象,主动捅自己一刀后,UE5 的风头不可谓不盛,本着多学一点免得失业的思路方针,咱也研究了一下 UE5 引擎,然后发现想要开始使用 UE5 ,包含了很多前置操作,这里总…...

C#/.NET/.NET Core技术前沿周刊 | 第 10 期(2024年10.14-10.20)

前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与视野拓宽。 欢迎投稿、推荐…...

Git 基本配置

目录 打开 Git Bash设置用户信息查看配置信息修改电脑名字为常用指令配置别名打开用户目录,创建 .bashrc 文件在 .bashrc 文件中输入如下内容:打开gitBash,执行 source ~/.bashrc 解决GitBash乱码问题打开GitBash执行下面命令${git_home}/etc…...

理工科考研想考计算机,湖南大学、重大、哈工大威海、山东大学,该如何选择?

C哥专业提供——计软考研院校选择分析专业课备考指南规划 计算机对理工科同学来说,还是性价比很高的,具有很大的优势! 一、就业前景广阔 高需求行业 在当今数字化时代,计算机技术几乎渗透到了各个领域,无论是互联网…...

使用langchain和大模型API提取QA的实战教程

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于大模型算法的研究与应用。曾担任百度千帆大模型比赛、BPAA算法大赛评委,编写微软OpenAI考试认证指导手册。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。授权多项发明专利。对机器学…...

Java面试场景题(1)---如何使用redis记录上亿用户连续登陆天数

感谢uu们的观看,话不多说开始~ 对于这个问题,我们需要先来了解一下~ 海量数据都可以用bitmap来存储,因为占得内存小,速度也很快 我大概计算了一下~ 完全够:String类型512M 1byte 8个bit位 8个状态 512M1024byt…...

Element UI

Element ui 就是基于vue的一个ui框架,该框架基于vue开发了很多相关组件,方便我们快速开发页面。 官网: https://element.eleme.io/#/zh-CN 安装Element UI vue init webpack element(项目名)确认项目是否构建成功:进入到项目的根路径 执行 npm start 访问 h…...

②PROFINET转ModbusTCP, EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关

EtherCAT/Ethernet/IP/Profinet/ModbusTCP协议互转工业串口网关https://item.taobao.com/item.htm?ftt&id822721028899 协议转换通信网关 PROFINET 转 Modbus TCP (接上一章) 配置使用 与 PROFINET 主站进行组态说明 这里介绍与西门子 PLC 的…...

python+Mosh网课笔记04

太久没写python代码了,学机器学习重新拾起python,笔记比较简陋。 参考:mosh python网课 一、导入同一文件夹下其他文件 first.py def swim():print("swim")def run():print("run")同一个文件夹下的second.py from f…...

【微服务】全面构建微服务监控体系:确保系统稳定与性能优化的关键

目录 引言一、微服务监控概述1.1 微服务监控的定义1.2 微服务监控的重要性1.3 监控的核心目标1.4 微服务监控的关键指标1.5 监控的策略 二、微服务监控的架构2.1 监控架构图2.2 架构组件2.3 监控架构示意图 三、微服务监控的工具3.1 工具概述3.2 Prometheus3.3 Grafana3.4 ELK …...

OpenClaw学术助手:Qwen2.5-VL-7B论文图表解析与总结

OpenClaw学术助手:Qwen2.5-VL-7B论文图表解析与总结 1. 为什么需要学术文献自动化处理 作为一名经常需要阅读大量文献的研究人员,我深刻体会到手动处理论文的痛点。每次下载几十篇PDF,光是浏览摘要筛选出相关文献就要耗费半天时间。更不用说…...

Pixel Language Portal惊艳效果集:梵文古籍→现代汉语的逐层语义解构与重构展示

Pixel Language Portal惊艳效果集:梵文古籍→现代汉语的逐层语义解构与重构展示 1. 像素语言传送门核心能力 Pixel Language Portal(像素语言跨维传送门)是基于Tencent Hunyuan-MT-7B引擎构建的创新翻译工具。与传统翻译软件不同&#xff0…...

基于YOLOv12的零售客流量分析:Vue.js可视化Dashboard开发

基于YOLOv12的零售客流量分析:Vue.js可视化Dashboard开发 你有没有想过,每天进出你店里的顾客,他们到底是怎么走的?哪些货架最受欢迎,顾客停留了多久,又有多少人只是匆匆路过?过去,…...

MemSifter 核心机制深度解析(非常详细),4B小模型管理大模型记忆从入门到精通,收藏这一篇就够了!

一句话总结:MemSifter训练一个4B参数的代理模型,通过"先推理再检索"的方式,替大模型从海量历史对话中筛选相关记忆,速度比全上下文方案快12倍,效果还更好。 论文标题:MemSifter: Offloading LLM …...

简单的kail中使用docker搭建vulhub靶场

我这里kali版本是6.12.38 一,安装docker 提权:sudo su 更新一手软件资源 命令:apt-get update ┌──(root㉿kali)-[/home/kali/Desktop] └─# apt-get update 获取:1 http://mirrors.ustc.edu.cn/kali kali-rolling InRelease [34.0 kB]…...

Gumbo-parser内存管理终极指南:7个简单步骤避免常见陷阱

Gumbo-parser内存管理终极指南:7个简单步骤避免常见陷阱 【免费下载链接】gumbo-parser An HTML5 parsing library in pure C99 项目地址: https://gitcode.com/gh_mirrors/gu/gumbo-parser Gumbo-parser是一个纯C99编写的HTML5解析库,高效的内存…...

不止于检测:如何用FastAPI和VUE3给你的YOLO行人识别系统加上数据大屏、模型管理和AI聊天?

从算法Demo到商业级系统:基于FastAPI与VUE3的智能检测平台架构实战 当你的YOLO模型能在测试集上跑出漂亮指标时,下一个问题自然浮现:如何让这个算法真正产生业务价值?我们见过太多优秀的检测模型被困在Jupyter Notebook里&#xf…...

从STM32F207到F030:多路ADC采样的那些坑与填坑实录

从STM32F207到F030:多路ADC采样的那些坑与填坑实录 在嵌入式开发领域,STM32系列MCU因其出色的性能和丰富的生态而广受欢迎。然而,当开发者从高端系列(如STM32F207)转向入门级系列(如STM32F030)时…...

GAPSO-LSTM:遗传粒子群优化算法优化LSTM超参数的数据回归预测方法

GAPSO-LSTM,即遗传粒子群优化算法优化LSTM的超参数做数据回归预测,多输入单输出,预测精度高于PSO-LSTM,算法原理为串行GAPSO,PSO的寻优结果再引入高斯变异和个体杂交,可以解决PSO容易陷入局部最优的问题。一…...

无障碍阅读助手:OpenClaw+Phi-3-vision-128k-instruct实时解析复杂图表

无障碍阅读助手:OpenClawPhi-3-vision-128k-instruct实时解析复杂图表 1. 为什么需要图表无障碍解析工具 去年帮一位视障朋友准备资格考试时,我深刻体会到技术文档中的图表是如何成为"信息黑洞"的。当他用屏幕阅读器听到"参见图3"…...