您的位置:首页 > 职场人生

黑马程序员--Java入门之面向对象的理解

2014-10-29 21:43 190 查看
面向对象是什么?为什么要面向对象?面向对象能带来什么好处呢?面向对象就是万能的吗?

带着这些疑问我们一起走进面向对象的大门!

我们切不说面向对象的三大特征(封装、继承、多肽),举个例子,如果你是大学生,想想你们宿舍的模样,是不是第一反应就是一个字“乱”?是不是墙角下一个垃圾桶,但是却很少看见它的模样,平时垃圾都堆满了,桌子上,床底下一大堆没写名字的书,平时都随手拿去上课,勉强找个地方放个电脑,而电脑旁边却是林立的水杯、营养快线瓶子、方便面袋子和碗筷等等。为了体现人口密集地区的特点,决定采取占天不占地的方式在墙上粘满了挂钩,挂着一堆衣服平时靠着玩游戏好像坐在沙发上一样舒服!不管是睡的时候还是白天没人,被子永远是蜷缩成一卷一卷的像只蠕虫,有时候下面的人跟上面的人说半天话都没反应,气冲冲的掀开被子一看、没人。。。

不说那么多了,万一被误会就不好了。。。

再想想,如果把宿舍里面的东西都分类整整齐齐的摆放好,把书都写上名字,数据线充电器都贴上属于自己的标签,是不是想要什么就去什么地方要,永远不会错?数据线充电器再也不会拿错或是找不到了?记着自己笔记的书每次都能拿到?

是的,没错,面向对象也是类似,假如我们写一个类,那么类里面就会有它的方法和属性,比如鸟,它有身高体重、名字和颜色等属性,它有飞、走、吃等方法,我们需要它干什么只要调用一下就行了,只要名字写对,永远不会错搞,你也可以设置它的属性为private,这样没有定权限是不可能访问到它的属性的,我们就把这样被写成一个类的鸟称为封装。

而继承呢?鸟有无数种,但是他们功能和属性都不太一样,只是有些会走路会吃饭等共性而已,但是我们每次写一个鸟类时都要重新写一次它会走会吃饭?有了继承,我们直接继承之前的鸟,如果是喜鹊,我们可以为他增加飞的功能,但是鸵鸟就不会飞,所以都有所不同,这就是继承带来的好处。

而多太呢?如果我们在写一个处理用户查询数据库的函数,有时候用户输入一个关键字,有时候输入多个关键字,那我们就要写多个对应关键字个数的参数个数的函数吗?这样名字就会特别多,而多态就能解决这个问题,我们可以对函数进行重载,这样就可以同一个名字可以接受不同参数的函数,并执行不同的功能。这样,函数名字少了,程序的可读性就提高了。

像这样,程序里面有类分类,有条有理,不管程序是多么的庞大,都可以很快的上手,易于读写。这就是面向对象带来的好处之一。

但是也有不好的方面,比如说,一个的功能实现可能几句代码就能解决,但是却要写很多把它封装起来,这样,如果太多了,那么程序运行起来就会慢很多,效率也就降低了。也增加了系统的开销,有些在速度和效率上有要求特别高的程序就不能用面向对象的方式去编写,虽然用面向过程的方式去编写,维护起来不太容易,但是也必须这么去做。

所以凡事都有优缺点,就看怎么衡量了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: