我是一个java的初学者!现在正在学习当中!
昨天老师布置了一个作业!"什么是面向对象"?
什么是面向对象呢?我查询了一个晚上,看了很多高手的说法!我今天简单的摘抄了些高手的解释!如下:
面向对象(Object Oriented,OO)是当前计算机界关心的重点,它是90年代软件开发方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。
谈到面向对象,这方面的文章非常多。但是,明确地给出对象的定义或说明对象的定义的非常少——至少我现在还没有发现。其初,“面向对象”是专指在程序设计中采用封装、继承、抽象等设计方法。可是,这个定义显然不能再适合现在情况。面向对象的思想已经涉及到软件开发的各个方面。如,面向对象的分析(OOA,Object Oriented Analysis),面向对象的设计(OOD,Object Oriented Design)、以及我们经常说的面向对象的编程实现(OOP,Object Oriented Programming)。许多有关面向对象的文章都只是讲述在面向对象的开发中所需要注意的问题或所采用的比较好的设计方法。看这些文章只有真正懂得什么是对象,什么是面向对象,才能最大程度地对自己有所裨益。这一点,恐怕对初学者甚至是从事相关工作多年的人员也会对它们的概念模糊不清。
面向对象的程序设计(Object Oriented Programming,简称OOP,亦有译为对象导向),指一种程序设计范型,同时也是是一种程序开发的方法论。它的最大特点是能够大幅度的提高软件项目的成功率,减少日后的维护费用,提高软件的可移植性和可靠性!
对象(Object):是问题域或实现域中某些事物的一个抽象,它反映此事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行操作的一组服务的封装体。关于对象要从两方面理解:一方面指系统所要处理的现实世界中的对象;另一方面对象是计算机不直接处理的对象,而是处理相应的计算机表示,这种计算机表示也称为对象.
看了很多很多高手的说法后!
我自己的理解如下:
对象:就是现实中的某些事物的抽象,它具有它的专属的属性与一些方法,用于我们来识别它!好比如我们用的电脑,我们可以把它看成一个对象,我们别说内部设备,从外观上看,电脑具备输出设备:显示器;输入设备键盘,鼠标!我们可以用它学习,游戏等许多功能!我们要运用这些设备去实现我们所需要的功能!这就有如方法!而怎么区分电脑这个对象呢,比如我们在学校教室上课用的台式电脑我们看成一个对象,我们在宿舍用的笔记本电脑我们也看成一个对象,它们同样都是电脑!有一些相同的属性与方法,只不过它们的属性的特真不通,比如台式机的输入输出设备都比较大,不容易携带,而笔记本电脑就比较小,容易携带!我们就可以用这些特真来区分它们!而对于面向对象:它有3个特性:封装,继承,多态。
所谓封装,就是通过定义类并且给类的属性和方法加上访问控制来抽象事物的本质特性。
所谓继承,也就算是代码重用!
而多态,从另外一个角度分割了接口和实现。
其实简单的说面向对象是很接近我们的生活的,或者说面向对象很接近我们的人的思维!所以对于我们学习编程的同学就要求我们对生活上的某事或物的多做了解,再把它用编程语言作于实现!在编程中遇到问题的时候多考虑下要解决这个问题需要哪些运用到哪些对象,哪些类;而这些对象,这些类具有哪些属性和哪些方法;最后再考虑下这些对象这些类有什么样的关系呢!多想想这些东西,这些东西就算是面向对象的思想了!