什么是面向对象。
切入: 面试官要的不是答案本身,而是你的逻辑表述,理解,及应用。
答:面向对象是区别于面向过程而言的,面向过程可以表述为:程序 = 算法+ 数据结构 ;面向对象可以表述为 程序 = 对象 + 消息。
面向对象是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程。 我们强调“万物皆对象”,我们抽象他们的属性与行为出来,以代码的形式展现。它有三个基本特征
1.封装:
封装就是,隐藏内部具体实现,只提供接口方法去访问。比如我们调用NSString类的,截取,拼接方法时,我们并不需要具体的算法,而只需调用相应方法。
2. 继承:
它是面向对象的程序中两个类之间的一种关系,即一个类可以从另一个类(即它的父类)继承状态和行为。继承父类的类称为子类。
继承的优越性:通过使用继承,程序员可以在不同的子类中多次重新使用父类中的代码,使程序结构清晰,易于维护和修改,而子类又可以提供一些特殊的行为,这些特殊的行为在父类中是没有的 。
3.多态:
是指一个程序中同名的方法共存的情况,调用者只需使用同一个方法名,系统会根据不同情况,调用相应的不同方法,从而实现不同的功能。多态性又被称为“一个名字,多个方法”。
以上的操作就是为了实现代码复用,实现代码的可移植性,灵活性,及低耦合,高内聚。
-------------------------------------------------------------------------------------------------------------------
面向对象是相对面向过程而言。面向对象和面向过程都是一种思想。
例如洗衣服这件事的不同理解。
面向过程的方式去理解:准备衣服已经相关的用品,打开洗衣机,放入衣服和洗衣液,启动洗衣机。
面向 对象的理解方法:买个全自动洗衣机,准备要洗的衣物及用品。或者找个人帮你洗,呵呵。
面向过程:按人们认识客观世界的系统思维方式,采用基于对象(实体)的概念建立模型,
模拟客观世界分析、设计、实现软件的办法。通过面向对象的理念使计算机软件系统能与现实世界中的系统一一对应。
面向对象:是一种解决软件复用的设计和编程方法。这种方法把软件系统中相近相似的操作逻辑和操作应用数据、状态,
以类的型式描述出来,以对象实例的形式在软件系统中复用,以达到提高软件开发效率的作用。
它的优点是可以大幅度提高软件项目的成功率,减少维护的费用,提高可移植性和可靠性。
面向对象设计四个个主要特征
抽象性
继承性
封装性
多态性
二者的区别:
面向过程是把问题中的数据用算法进行描述,强调功能性;
面向对象是把功能封装进对象,强调问题的解决需要哪些对象的使用。
面向对象的编程思想是基于面向过程发展而来的,这是计算机程序设计发展到一定阶段的必然产物。
网友评论