傻子都能看懂的面向对象思想

本文介绍了面向对象编程的基础概念,对比了面向过程编程,通过刷牙的例子阐述了面向对象的思维方式,强调了面向对象在处理复杂问题时的优势。面向对象的五个基本特性包括万物皆可对象、对象间通过消息传递、对象包含其他对象、对象有类型以及对象间的可替代性。面向对象编程使得程序设计更加贴近现实,提高了解决大规模问题的效率。
摘要由CSDN通过智能技术生成

@傻子都能理解的面向对象编程(OOP)

注!由于博客写的很少,排版不好还请见谅。

面向对象浅谈

讲几句题外话,我觉得面向对象的思想对于程序员而言很重要,就像我们做数学题的时候的解题思维能力,想想,要是做数学题连怎么思考都不会,这是一件可怕的事情

1.什么是面向对象?
2.为什么要面向对象编程?
3.对象是什么?
4.这种技术是为了解决什么问题而出现?

往下看

面向程序设计

面向对象是面向程序设计中的分支,面向程序设计又是什么呢?在我看来,就是用计算机设计出各种项目,软件,或者你想设计的任何程序。但是计算机只能识别二进制,只由0 和1构成,可读性极差。于是后面就有了汇编语言,在然后面向过程,面向对象。我们编写汇编语言,而计算机会把汇编语言从高到底层一步步拆除,最后转换为二进制语言。

面向过程

在面向对象技术成熟之前,面向过程才是程序设计的主流思想。而面向对象是基于面向过程开发出的新技术。

什么是面向过程?怎么理解呢?

想起我刚开始接触的时候也懵懵懂懂,什么是面向过程,面向对象概念模糊。

百度介绍这怎么理解?

见名知意,面向过程设计更注重过程。把一个问题分为很多小步骤,让计算机非常精确并且有序的按照我们规定好的顺序和步骤进行。打个小比方,问题是刷牙,简单的分为三步:

1,拿牙酸。
2,挤牙膏。
3,开始刷。

非常精确的按照步骤执行解决方案

面向对象

在这里插入图片描述
面向对象更重视整体,把一个问题分为很多小的构件,每个小构件都是一个对象,每个对象都有状态和行为,他们就像是分工清晰,各管其职的军队,每个对象只负责自己的那一块,每个对象都有特征和行为,他具有状态还有操作,就像一个生命体。

接下来再来看看那个问题,刷牙,你可以想想,用面向对象思想怎么思考?

问题中存在三个对象,人,牙膏,牙刷。

人 行为:拿,挤,晃动。
牙膏 行为:被挤压时可以出牙膏
牙刷 行为:粘牙膏

三个对象只管自己那块,做自己会做的事情,分工合作的“解决问题”。跟面向过程比较,更接近现实,而且也更容易理解。面对对象允许根据问题来描述问题,而不是根据运行解决方案的计算来描述问题。

差异

乍一看虽然面向对象跟容易理解,面向过程感觉也没啥毛病。都是描述问题。为什么我们要用面向对象而不用面向过程呢?其实是因为规模问题,当规模较小的时候用面向过程反而效率更高,但是当问题是大规模的时候,“步骤多如汗毛”,而且出现bug难以调试,所以才有了面向对象设计语言的出现。

面向对象五个基本特性

1,万物皆可对象

这个很好理解,就像一本书,一支笔,就像一个个个体。

2,程序是对象的集合,他们通过发送消息来告知彼此所要做的。

要想你想请求一个对象,必须给该对象发送一条消息,可以发消息理解为调用某个对象的方法的请求。就像你用人家的你得先征求人家的同意。

3,每个对象都有自己的由其他对象所构成的存储。

我的理解为对象中也可以包含别的对象,像人包含了手,jio,牙刷包含了毛还有牙刷棒。

4,每个对象都有其类型。

“每个对象都是某个类的一个实例”,每个类最重要的区别在于其他类的特征就是“可以发送什么消息给他”。像便宜的牙刷和贵的牙刷,他们都是牙刷类的对象,都属于牙膏类,而人属于高级动物类。

5,某一特定类型的所有对象都可以接收同样的消息。

例子牙刷,不管贵的还是便宜的都可以刷牙,都能回应刷牙的请求。尽管带来的刷牙体验各不相同。在比如,圆形类型同时也是几何型类型的对象,圆形也能接受发给几何类类型的消息,几何形型的行为我圆形也具有。这种可替代性,是面向对象的牛逼之处。

每个对象在内存当中有唯一的地址

优雅结束

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值