前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【面试宝典】谈谈面向对象

【面试宝典】谈谈面向对象

作者头像
程序员互动联盟
发布2018-03-15 17:28:52
8370
发布2018-03-15 17:28:52
举报

面试官:知道面向对象吧。

小白:嗯,知道,面想对象就是封装继承多态呀。

面试官:回答了一部分,还能谈谈除了封装、继承、多态之外的吗,比如说怎么抽象,抽象的思想是什么?

小白:啊,面向对象还有这么多东西呀。

今天的面试宝典给大家谈谈什么是面向对象,这个问题在大公司都会问一下,因为面向对象分析问题是一个程序员的基本素养,它就相当于编写程序的指导思想,你的程序质量高低,代码实现的难易都与面向对象有关。

计 算机的运行是一个世界,人类的生活又是一个世界,程序员用计算机解决人类实际需求的过程就是建立起这两个世界的某种联系或映射的过程,这个过程也就是抽象 的过程,把人类的认知世界抽象为计算机的认知世界,这个过程很难,也有很多方法,不同的程序员就会用不同的方法,就像有一千条路去某个地方,总会有比较合 适的几条路可走。编程思想中有一句话:人们所能有解决的问题的复杂性取决于抽象的类型和质量。所以计算机编程又是一种艺术,一种抽象的艺术。

关于面向对象一般网上都是在说继承、封装、多态等名词,我觉得对于初学者来讲都太抽象,太难以理解,我觉得编程思想中的几段话讲的很好,很利于初学者来理解面向对象的概念。下面就给大家来说说:

  • 万物皆为对象。也就是说世界上所有的事物都能通过抽象变成一个可以用代码实现的对象。比如动物、建筑物、服务。
  • 程序是对象的集合,他们通过发送消息来告知彼此所要做的。程序是把要解决的问题抽象为若干的对象,这些对象之间通过消息来通知彼此做什么和传递数据。比如:动物吃食物,这个程序包含了动物、食物两种对象,通过吃这一动作来告知动物吃食物。
  • 每个对象都有自己由其他对象构成的存储。意思是对象之间可以是包含的关系,一个对象中可以含有另外一个对象,这样就构成了一个新的对象。比如:发动机对象和汽车对象 ,汽车这一对象中包含发动机。
  • 某一特定类型的所有对象都可以接受同样的消息。这是判断某一对象是不是某个类型的标准。比如你定义了动物的一些行为 比如移动,那么所有的动物都要相应移动这一消息,无论你是跑着移动、飞着移动,还是游着移动。

一个外国人(Booch)还对对象提出了更加简洁的描述:对象具有状态,行为和标识。也就是说每个对象都可以拥有内部数据(它们来描述该对象的状态)和方法(它们的行为)。

最后附上一张网上有趣的图,应该能够帮你理解面向对象个各种知识。


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-02-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员互动联盟 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档