再次认识面向对象

简介: 再次认识面向对象

面向对象的三大特征?

封装、继承、抽象


面向对象的基础是什么?

抽象


为什么说面向对象的基础是抽象呢?

抽象其实是一个过程,提炼出事物的共同点的过程。

例如:


抽象:猫的头、猫的身体、猫的脚、猫叫、猫抓老鼠)等,这些都属于猫的一个共同特征,所以我们可以抽象出一个东西,就是猫。


封装:


接下来再说封装,既然猫的头、猫的身体、猫的脚、猫叫、猫抓老鼠可以抽象出一个猫这个东西,那么我们就可以把这些特征进行封装,不管是猫的组成部分也好还是猫的一些行为也好,可以封装出来一个猫类。


继承:


那么我们再猫的基础上再进行抽象,猫和狗都属于动物,可以抽象出一个动物类。猫类和狗类都是动物类的子类。


多态:


在动物类中写一个抽象方法:叫,猫类去重写动物类的这个方法可以有自己的实现:猫叫,狗类去重写动物类的这个抽象方法:狗叫,这样不同的子类(猫类和狗类)都重写了父类(动物类)的“叫”这个方法,但是它们的实现确实不同的,猫是猫叫,狗是狗叫,这就实现了多态。


所以说面向对象的基础或者可以说是大前提就是抽象。


那么,到底什么才是面向对象?


先从字面去理解,面向,对象,焦点在于这个对象身上,什么又是对象呢?大家有点点编程基础的都知道一句话,万物皆可为对象。你可以是对象,我可以是对象,他可以是对象,她可以是对象,它也可以是对象。


在了解什么是面向对象之前呢我们先来简单了解一下什么是面向过程,同样也是同字面意思,它的焦点在于这个过程,例如:拿打水举个例子,面向过程呢就是关注于谁去打水,去哪打水,给谁打水,以及他打水走了多少步,上了几个台阶,拧开了水杯,把杯口对准出水口,接满了再拧上杯盖等等等,面向过程关注的他打水的这个过程。从面向对象的角度怎么理解呢?我不需要知道具体谁去打的水,要打给谁,以及走多少步等等一系列过程,面向对象关注的就是打水这件事都包含了几个对象,打水人、受水人、打水的工具、打水的地点,打水人和受水人还能进一步做抽象,抽象为参与者,所以最后只剩这么几个对象:参与者、打水工具、打水地点。至于如何实现,那是下一步要做的事情,利用对象之间的事件驱动,各对象之间再去做关联,这才是面向对象,不需要去考虑打水的过程。


目录
相关文章
|
存储 Java 计算机视觉
Java代码居然可以做出如此高级的图片编辑系统
Java代码居然可以做出如此高级的图片编辑系统
585 0
|
设计模式 缓存 自然语言处理
DDD领域驱动设计如何进行工程化落地
DDD领域驱动设计到底如何进行实际的工程化落地,为什么要进行领域分层?本文主要围绕DDD领域分层,设计了可落地的工程结构。
DDD领域驱动设计如何进行工程化落地
|
8月前
|
人工智能 IDE 程序员
通义灵码 AI 程序员正式上线!
通义灵码 AI 程序员正式上线!
182 0
|
6月前
|
SQL Go 数据库
Gorm使用教程:掌握高级查询的技巧。
以上就是我们今天的旅程中所会遇到的一些有趣的Gorm查询技巧。学习这些技巧像是学着驾驶一辆全新的巴士,只要你掌握了这些,你可以在数据库的海洋中自由驾驶,轻松地转向,畅游其中。祝你在Gorm的世界中探索愉快!
181 36
|
Shell
一个用于添加/删除定时任务的shell脚本
一个用于添加/删除定时任务的shell脚本
313 1
|
7月前
|
人工智能 关系型数据库 MySQL
《深度探秘:解锁开源社区中MySQL与AI集成的资源宝库》
在数据管理与AI融合的前沿领域,MySQL与AI的集成成为开发者和数据科学家关注的焦点。开源社区作为技术爱好者的智慧殿堂,提供了丰富的支持与资源。本文从开源社区的活力生态出发,探讨如何通过专业论坛、代码托管平台及技术博客精准获取资源,并通过深度参与社区互动、筛选整合优质内容,构建个人知识体系。掌握这些方法,不仅能提升技术能力,还能推动MySQL与AI集成在实际项目中的创新应用,为数据驱动的未来贡献力量。
219 26
|
8月前
|
存储 人工智能 Cloud Native
小鹏汽车选用阿里云PolarDB,开启AI大模型训练新时代
PolarDB-PG云原生分布式数据库不仅提供了无限的扩展能力,还借助丰富的PostgreSQL生态系统,统一了后台技术栈,极大地简化了运维工作。这种强大的组合不仅提高了系统的稳定性和性能,还为小鹏汽车大模型训练的数据管理带来了前所未有的灵活性和效率。
|
8月前
|
人工智能 安全 API
AI 解决方案的安全控制设计与实施
AI 解决方案的安全控制设计与实施涵盖数据安全、模型安全、系统安全及合规治理四大领域。通过数据加密、访问控制、差分隐私等手段保障数据安全;采用对抗训练、联邦学习确保模型安全;利用容器化部署、可信执行环境维护系统安全;并遵循 GDPR 等法规,进行红队测试和应急响应,确保 AI 全生命周期的安全性与合规性。
|
Java Linux API
Android SDK
【10月更文挑战第21天】
333 1
|
IDE 机器人 开发工具
基于ESP32的机器狗
基于ESP32的机器狗
333 0