“面向对象编程”是什么意思?

xuerueheng 2019-04-18 08:41:51
有大佬能简单的解释一下“面向对象编程”是什么意思吗?越简单易懂越好,这种概念性的问题我真的很抓狂啊
...全文
1391 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
六道佩恩 2020-05-13
  • 打赏
  • 举报
回复 2
我是这样理解的: 假设有ABC三个物体,我要设计让它们运动 面向过程:三个一起计算,先怎么动,后怎么动,随时间变化 面向对象:分别设计ABC的行为,当它们遇到怎样的事件时会怎样动,比如这样设计A:如果B碰了你一下就转一圈,C碰了你一下就跳一下,也就是把每个物体当成一个真的物体(对象)来设计它,像是在模拟真实世界。当三个都设计完后,给一个行为,然后就会产生一连串连锁反应,于是它们也随时间开始运动了。
  • 打赏
  • 举报
回复
用装电脑做个比喻, 你会上螺丝装配零件就可以了 ,貌似搞机械的,但是机械设计原理,材料分析,受力分析,制造什么的一概没有用 做软件好多也如此, 就一装配工,各种控件拼到一起了,你学的数据结构,软件工程,oo思想根本没有用。 面向过程也没有用。要有设计思想的话就是控件拼凑思想。 说实话,国内绝大多数开发人员做的软件,不需要编程思想,本人没有编程思想,也不懂编程思想,却自以为是
  • 打赏
  • 举报
回复
国内基本上没有什么人能入门的,概念都不懂。书也翻译的也乱七八糟。光看中文根本学不会。 首先OO翻译成,面向对象就是个烂的不能烂的翻译,估计是看不懂翻字典胡乱给个名字(软件方面胡乱翻译的事很多),不知道想表达什么意思。 台湾的翻译是 物件导向 object : 现实世界中的东西(物件) oriented:引导,指导 . 经典的面向对象思想书上说的很明白 ,这思想对于绝大多数程序员1 用不上,你的软件不适合用 2 你学不会,掌握不了 举个例子 , 开发autocad: oo做法是, 设想现实中, 画家在纸上用笔划线 三大对象可能有 drawer画家, paper纸, pen笔 . 需要非常创造性的思维才能 发现上面3个对象, 掌握这个思想非常非常难。 而且这种软件实现需要很扎实的编程功底(国人多不具备)。 掌握这思想建议你看看60到80年代前美国重要的相关博士论文。
AmyWYF 2019-09-09
  • 打赏
  • 举报
回复 2
之前在网上看到的,很有意思的解释关于面向过程和面向对象编程。 面向过程:就是你想吃番茄炒蛋的时候,需要先会做番茄炒蛋,而且你需要你去买鸡蛋,番茄,然后洗,切,炒,最后吃。 面向对象:就是你不会做番茄炒蛋也没事,当你想吃时,直接去餐厅,告诉老板:“老板,来一份番茄炒蛋”,然后就可以吃了。
qq_23874291 2019-04-26
  • 打赏
  • 举报
回复
就是找个对象,然后面对她编程
xuerueheng 2019-04-24
  • 打赏
  • 举报
回复
引用 16 楼 天使手儿 的回复:
比如人吃饭。简单来理解:面相过程,拿筷子-夹菜-送到嘴里-咀嚼-咽下。面相对象,筷子-可以夹菜.人-有手-可以拿筷子,有嘴-可以咀嚼-可以咽下,菜-可以被夹起来---人的手拿起筷子夹菜送到嘴里咀嚼咽下。

大佬你这个解释很通俗啊,谢谢大佬。(手动点赞)
他乡清客 2019-04-24
  • 打赏
  • 举报
回复
简单来说类是大的范畴,而对象就具体到某个事物。
墨羽华 2019-04-23
  • 打赏
  • 举报
回复
将现实的东西抽象成类,再将类实例化为对象!
嗔魔浇漓 2019-04-22
  • 打赏
  • 举报
回复
简单来说,程序有很多对象,操作是对对象完成的
xuerueheng 2019-04-22
  • 打赏
  • 举报
回复
引用 11 楼 幻夢之葉 的回复:
[quote=引用 10 楼 xuerueheng 的回复:]
那么一个“类”是不是可以分成几个对象,一个“对象”是不是也可以分成几个类或转化成几个类或归属于几个类呢?(大佬见谅啊,我都不知道该怎么表达我的意思了)这些类和对象又有什么关系呢?还有这些东西实际应用在编程里都是代表什么呢?大佬抱歉啊我可能有点刨根问底

1)老师属于一个职业(类),但是学习的老师不止一位,那么每一位就是一个对象,可以有很多个

2)跟现实有些差异,一个对象只能属于一个类,但是有方式去描述,例如:
老师可以见到分为男老师和女老师,那么女老师也可以定义为一个类(女人+老师)
这可以由女人类和老师类派生出一个类(女老师类),这个对象属于女老师类(单一),但是可以拥有多种类别(通过派生)

你首先应该去看一本面向对象语言的教程,当你学会如何利用这语言去编写一个程序的时候
对于面向对象的概念有实践上的辅助,这样子理解估计会好一些[/quote]
奥,大佬我有些能理解您的意思了。您真厉害,谢谢您不厌其烦的教导
zhouqunhai 2019-04-21
  • 打赏
  • 举报
回复
对象包含所有属性,你只需操作对象即可
幻夢之葉 2019-04-21
  • 打赏
  • 举报
回复
引用 10 楼 xuerueheng 的回复:
那么一个“类”是不是可以分成几个对象,一个“对象”是不是也可以分成几个类或转化成几个类或归属于几个类呢?(大佬见谅啊,我都不知道该怎么表达我的意思了)这些类和对象又有什么关系呢?还有这些东西实际应用在编程里都是代表什么呢?大佬抱歉啊我可能有点刨根问底
1)老师属于一个职业(类),但是学习的老师不止一位,那么每一位就是一个对象,可以有很多个 2)跟现实有些差异,一个对象只能属于一个类,但是有方式去描述,例如: 老师可以见到分为男老师和女老师,那么女老师也可以定义为一个类(女人+老师) 这可以由女人类和老师类派生出一个类(女老师类),这个对象属于女老师类(单一),但是可以拥有多种类别(通过派生) 你首先应该去看一本面向对象语言的教程,当你学会如何利用这语言去编写一个程序的时候 对于面向对象的概念有实践上的辅助,这样子理解估计会好一些
幻夢之葉 2019-04-20
  • 打赏
  • 举报
回复
引用 6 楼 xuerueheng 的回复:
[quote=引用 2 楼 幻夢之葉 的回复:] 简单来说就是把一组数据和函数集合在一起,作为一个有机的类别。 任何操作,都是对这个类别的对象进行处理
谢谢回答,有机的类别?这具体指的是什么呢?感觉有点抽象,麻烦大佬了[/quote] 就是模拟成现实中事物的类别,举个常见的例子 比如你是学生,那么可以定义一个学生类,拥有唯一编号姓名性别出生年月课程安排等信息(数据),而这些都是可以修改和查询的(操作) 那么课程也可以定义为一个类,有课程名称,任课老师,分数等信息(数据),依旧可以查询修改还有如何计分(平时成绩考试成绩)(操作) 那么老师也可以定义为一个类 学校也可以定义为一个类 教室也可以定义为类 等等等 具体的个体就是这些类的对象,相同类别的对象拥有共同的属性(如学生姓名性别),但是是有差异性的(如姓名性别具体到个人是可以不同的)
xuerueheng 2019-04-20
  • 打赏
  • 举报
回复
引用 8 楼 幻夢之葉 的回复:
[quote=引用 6 楼 xuerueheng 的回复:]
[quote=引用 2 楼 幻夢之葉 的回复:]
简单来说就是把一组数据和函数集合在一起,作为一个有机的类别。
任何操作,都是对这个类别的对象进行处理

谢谢回答,有机的类别?这具体指的是什么呢?感觉有点抽象,麻烦大佬了[/quote]
就是模拟成现实中事物的类别,举个常见的例子
比如你是学生,那么可以定义一个学生类,拥有唯一编号姓名性别出生年月课程安排等信息(数据),而这些都是可以修改和查询的(操作)
那么课程也可以定义为一个类,有课程名称,任课老师,分数等信息(数据),依旧可以查询修改还有如何计分(平时成绩考试成绩)(操作)
那么老师也可以定义为一个类
学校也可以定义为一个类
教室也可以定义为类
等等等

具体的个体就是这些类的对象,相同类别的对象拥有共同的属性(如学生姓名性别),但是是有差异性的(如姓名性别具体到个人是可以不同的)[/quote]
那么一个“类”是不是可以分成几个对象,一个“对象”是不是也可以分成几个类或转化成几个类或归属于几个类呢?(大佬见谅啊,我都不知道该怎么表达我的意思了)这些类和对象又有什么关系呢?还有这些东西实际应用在编程里都是代表什么呢?大佬抱歉啊我可能有点刨根问底
lc8918 2019-04-20
  • 打赏
  • 举报
回复
就象吃饭,炒菜过程叫面向过程,不关注炒菜过过程,直接等饭好了开吃,就叫面向对象
幻夢之葉 2019-04-19
  • 打赏
  • 举报
回复
简单来说就是把一组数据和函数集合在一起,作为一个有机的类别。 任何操作,都是对这个类别的对象进行处理
xuerueheng 2019-04-19
  • 打赏
  • 举报
回复
引用 3 楼 zDavid_2018 的回复:
咦 前几天刚写了博客总结。。。
也是学习有了深度,代码写多了,才有感觉吧。

谢谢大佬推荐,我去拜读一下。
xuerueheng 2019-04-19
  • 打赏
  • 举报
回复
引用 2 楼 幻夢之葉 的回复:
简单来说就是把一组数据和函数集合在一起,作为一个有机的类别。
任何操作,都是对这个类别的对象进行处理

谢谢回答,有机的类别?这具体指的是什么呢?感觉有点抽象,麻烦大佬了
xuerueheng 2019-04-19
  • 打赏
  • 举报
回复
引用 1 楼 oZuoZuo_feilong588 的回复:
不知道你现在学习过那种语言,我只学过C,VB,按键精灵,学的多了自然就理解了。个人理解:说白了就是一种事务有关联的“封装”在一起,赋予它各种属性,能够操控它。比如一个苹果,它的用途之一是“被人吃”,它一般是圆形(可能有其他),红色,等等它就是一个对象。

谢谢回答,我现在正在学c,看的primer pius
xyz-x 2019-04-19
  • 打赏
  • 举报
回复
面向对象通俗点就是把一个要描述的事物(对象)的一些特征都集合在一起(封装)。比如一个对象:人,你可以自己描述他是男是女,姓名职业。然后提供获取或者修改设置这些信息的接口。通过对象用这些接口直接获取信息。
加载更多回复(2)

69,322

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧