学编程,学思想。有了思想,才能决定一切。思想有多大,舞台就有多大。面向对象是一种常见的设计思想,被广泛的应用于编程。(也就是用来指导我们编程的)
在很久很久。。。以前,那时候还没有面向对象。传统的程序设计方式,采用面向过程的思想,即结构化程序设计。一个程序=算法+数据结构。面向过程编程有很多的弊端,很难适应大型应用的开发。后来就有人提出了面向对象思想,面向对象程序设计:对象=算法+数据结构;程序=对象+对象+对象......+对象。从这些公式中我们可以看出:面向对象是由面向过程发展而来的,面向过程是面向对象的基础。
面向对象程序设计,模拟了我们自然界认识和处理事物的方法,把事物的行为和属性都封装在对象里面。学习面向对象首先要先弄明白类和对象。因为在程序中面向对象就是通过类和对象来实现的。什么是对象?人们常说万物皆对象。“皆”就是“都”是的意思。也就是说万物都是对象,反过来说,对象指的是世界上的所有事物。什么是类?类是一个抽象的概念,它是对同一类对象行为和属性的描述,在程序中类实际上是数据类型。千万不能说把事物的行为和属性封装在类里面,因为类是不具备执行能力的。类和对象之间的关系:类是对象的模版,对象是类的实例(副本)。
面向对象还有一些特性:像封装、继承、抽象、动态。(思考面向过程有这些特性?)
封装:隐藏事物的行为和属性,对外提供,公共的访问方式。从而提高代码的重用性和安全性,也方便了我们以后对事物的操作。封装不可以瞎封装。封装的目标是为了实现程序的高内聚和低耦合。像多个线程操作同一共享资源,如果线程任务相同,我们可以把共享资源,操作共享资源的代码,以及线程任务都封装在一起;如果线程的任务不同,我们可以把共享资源,操作共享资源的代码封装成一个资源类。再把资源对象作为参数传递给线程任务。
抽象:抽象不好说,因为类本身就是一个抽象的概念。可以说是对同一类事物进行抽取,更为关注事物的共性,而忽略了每个事物的具体特性。类、抽象类、接口都是抽象的体现。
继承:可以让类与类之间产生关系。子类或者子孙类可以共享父类的数据。父类里面有的子类可以直接拿过来用,这样就提高了代码的重用性。子类也可以覆盖父类的方法,这样就方便了我们,以后对父类的修改和扩展。同时继承也是多态的一个前提。
多态:父类或接口的引用指向子类对象,一个对象可以有多种数据类型,一个引用类型也可以指向不同的子类对象。这个引用类型到底指向哪个对象,可以在程序运行的时候决定。因为多态,所以程序变得更加灵活。前期定义的代码,可以使用后期的内容。
理解面向对象的这些基本特性,可以帮助我们更好的理解面向对象。总之面向对象就是一种设计思想。左边:学编程;右边:学思想;横批:面向对象。。。
|
|