从今天起,我就开始学习c++了,终于要面向对象编程了(对象啊,希望真的可以有个对象)。我准备把每天的学习心得写成博文,分享给大家,都是新手,言语表达什么方面不合适的地方,欢迎指正(你猜我会不会改)
首先,c++是一门面向对象的语言,他和面向过程的语言是本质上的区别。
面向过程的语言,采取的是自顶向下,全面的开发,在开发的过程中,一个人要负责绝大多数的内容,代码的重复利用率很低。
面向对象的语言,将的是万物皆对象,这门编程语言是从现实中抽象而来,在语言的设计上很大部分都是来源于我们身边的例子 。有人说,面向对象编程很难,很抽象,我就不这么认为。凡是这样说的都是不会动脑筋的。让我们来开动脑筋想一想,什么叫做对象,什么叫做类。
什么叫做对象?(那不就是男女朋友),错了,还真不是。我认为,对象就是现实生活中的一些个体,比如小红,小红家的猫,这都是一个个体,是和别的个体不同的。但是比如说小红是个人,她家的猫是只猫,这里的人和猫,就是类。那么这个类怎么定义的呢? 人这个类就可以这么定义, 两只脚走路,有自己的语言,会思考,作为一个人,他会走路,会说话等,这里的走路说话就是方法(即函数)。
当然从c和c++的角度来理解类和对象,我认为,类,我们可以理解为C语言中我们自己定义的一个新的类型,只不过这个类型里面,我们赋予他了自己的方法,(就像是我们人一样,可以自己思考厉害吧),对象 就是我们自己根据自己定义的类,声明的一个变量,这有声明了,并且初始化之后我们才能使用他。
这是我自己的理解,当然我自己是弄清楚了,可能我的表达能力不高,说不明白,请谅解。
当然,C++里面还有很多面向对象的特征,如继承,封装,多态,重载。这都是一定现实世界的反应。
就拿继承来说吧,在自然界中,各个物种的分类,比如猫科动物,他们都有一些特性,都是哺乳动物,有四条腿,有尾巴,等,狮子,熊猫,猫都是属于猫科,这里的猫科就可以看做是一个父类,而狮子,熊猫,猫可以看做的是子类,他们都继承了猫科的一些特点,但是有都具有各自的特色。前者叫做继承,各自的特点,就是多态。而封装,就是类中对象的一些特征,这是他自己决定的,别人是看不到的。多态就是比如他们的行走方式都是爬行,但是每一个的爬行方式都不一样。(这点我也不是很清楚,以前学过java,记得里面是这样写的,不准确之处请指正)
就这么多了,实在编不下去了,下次就开始正式内容了,拜拜。
请轻喷,大神留情。