什么是对象?为什么要面向对象?怎样才能面向对象

什么是对象?为什么要面向对象?怎么才能面向对象


前言

很对刚入门的童鞋对与什么是面向对象估计是一脸懵,面向对象更是一个非常庞大的知识体系。前段时间逛博客的时候遇到这么个问题 ,问的是面向对象的知识,问题标题如下,所以就想聊聊有关面向对象的内容。

类 成员变量,对象,对象成员,方法之间的关系

面向对象讲起来非常抽象,内容也非常多,在开始写这篇博客的时候确实有点不知道从哪里下笔,也看了很多大佬的博客,其中大佬博客园-赵学智的这个文章提供了思路,也大胆引用了大佬的标题,感谢大佬。本人文笔、认知水平有限,希望能给入门的小伙伴带来一些简单的帮助,如果有错误的地方也希望大家不吝赐教。

一、什么是对象

  • 在客观世界由许多事物、事件、概念、和规则组成,这些均可被看成对象。
  • 在计算机编程中,对象是指一个特定的数据类型,它结合了数据和相关操作两个部分。

二、什么是面向对象

首先引用书本上的一句话:

面向对象(Object-Oriented,OO)方法是一种非常实用的系统化软件开发方法,它以客观世界中的对象为中心,其分析和设计思想符合人们的思维方式,分析和设计的结果与客观世界的实际比较接近,容易被人们所接收。

什么是面向对象?

缩句:面向对象是一种方法。一种系统化软件开发方法。一种非常实用的系统化软件开发方法。

所以在此时此刻,我想对新入门的小伙伴纠正一个观点,面向对象是种技术、是思想,不是指哪种具体的编程语言,只是说那种语言具有面向对象开发的机制,这种语言我们称为*一种面向对象程序设计语言, 例如Java、C++、C#、Python等。

《面向对象技术》
面向对象方法包括面向对象分析、面向对象设计和面向对象实现,其界限并不明显,采用相同的符号表示能方便的从分析阶段平滑的过度到设计阶段

面向对象(OO)是一种编程范式或方法论,它将数据(属性)和所操作数据的函数(方法、行为)组合成为一个独立的个体(对象),并通过这个个体来实现程序的设计和编写。与面向过程的编程思路不同,在面向对象的程序设计中,重点是描述程序中各个对象之间的交互关系,而不是按照执行顺序编排函数或语句,可以更加直观的描述现实世界。

我们常说的类和对象又是怎么回事?

类是对象的抽象,对象是类的实例

在面向对象编程中,数据和其相关行为通常被组织成为一个类。类就像一个模板,描述了数据和行为的属性。类可以用来创建对象,这些对象就是这个类的实例。通过创建对象,可以实现对数据和行为的封装,以及对复杂系统的分解和组合,使得程序变得更易于理解和维护。

三、为什么要面向对象(面向对象编程)

面向对象编程有许多优点,如模块化、可重用性、继承性、多态性等,因此在许多编程语言中得到广泛应用。

以下摘自赵老师博客 - 原文链接

面向对象产生的历史原因有下面两点:

1、 计算机是帮助人们解决问题的,然而计算机终究是个机器,他只会按照人所写的代码,一步一步的执行下去,最终得到了结果,因此无论程序多么的复杂,计算机总是能轻松应付,结构化编程,就是按照计算机的思维写出的代码,但是人看到这么复杂的逻辑,就无法维护和扩展了。

2、 结构化设计是以功能为目标来设计构造应用系统,这种做法导致我们设计程序时,不得不将客体所构成的现实世界映射到由功能模块组成的解空间中,这种转换过程,背离了人们观察和解决问题的基本思路。

可见结构化设计在设计系统的时候,无法解决重用、维护、扩展的问题,而且会导致逻辑过于复杂,代码晦涩难懂。于是人们就想,能不能让计算机直接模拟现实的环境,用人类解决问题的思路,习惯,步骤来设计相应的应用程序?这样的程序,人们在读它的时候,会更容易理解,也不需要再把现实世界和程序世界之间来回做转换。

与此同时,人们发现,在现实世界中存在的客体是问题域中的主角,所谓客体是指客观存在的对象实体和主观抽象的概念,这种客体具有属性和行为,而客体是稳定的,行为不稳定的,同时客体之间具有各种联系,因此面向客体编程,比面向行为编程,系统会更稳定,在面对频繁的需求更改时,改变的往往是行为,而客体一般不需要改变,所以我们就把行为封装起来,这样改变时候只需要改变行为即可,主架构则保持了稳定。

于是面向对象就产生了。

四、怎么才能面向对象

在赵老师的博客中提到

“面向对象”和“基于对象”都实现了“封装”的概念,但是面向对象实现了“继承和多态”,而“基于对象”没有实现这些。

  • 类和对象:理解类和对象的概念并能够创建自定义类和对象。需要了解类的属性、方法和构造函数等概念,并能编写类的定义和实例化对象的代码
  • 封装和继承:理解封装和继承的意义,并能够应用。了解如何使用访问修饰符控制类成员的可见性,并能够实现基础和派生类的继承关系。
  • 多态性:理解多态性的概念,并能够应用多态性编写灵活的程序。了解接口和抽象类的概念及实现方式。
  • 设计模式:掌握面向对象编程中的常用设计模式,例如工厂模式、单例模式、观察者模式等,能够应用设计模式解决问题并提高程序可维护性。
  • 多学习、多实践,可以阅读相关书籍和教程,掌握面向对象编程的核心概念和常用技术。
    作者水平有限,如有错误希望大家能给予提示,我必改之,再次感谢。
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yo~Magee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值