作为当今主流热门的面向对象编程语言,Java已经过二十多个春秋,通过无数前辈的演练、完善,已经相当成熟稳定,操作简单,有着它无与伦比的魅力,应用范围已经涉及到所有你能接触到的行业,Java程序员,可以说是当今互联网企业最喜欢也是最迫切需要的人才,也是缺口最大的岗位。
废话不多说,进入正题
一、面向对象编程:
所谓面向对象编程是针对于面向过程编程,他们当今最成功的代表就是Java和C,打个 比较形象的比喻:
面向过程:蛋炒饭,按顺序放油盐佐料,煎蛋,放饭搅拌完事,这个过程非常煎蛋快捷;但是如果你不想吃蛋炒饭想吃肉炒饭,那么不好意思,这个一盘蛋炒饭你只能全部倒掉,重新再来
面向对象:点菜,饭菜分离,想吃什么点什么,用户可以根据自己的喜好只需要准备菜品就行;但是前提是准备工作一大堆,而且饭菜要分开处理,自然就慢下来了
所以根据上面两个比喻,我们得出面向过程和面向对象的优缺点:
面向过程
优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、 Linux/Unix等一般采用面向过程开发,性能是最重要的因素。(按照蛋炒饭或者肉炒饭步骤一气呵成)
缺点:没有面向对象易维护、易复用、易扩展(不喜欢不适用就只能全部放弃,没人愿意吃别人扒拉过的蛋炒饭吧?哈哈)
面向对象
优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护(菜不喜欢换菜,饭不喜欢换饭,而且饭桌上的菜品咱们大家都可以吃,并不会觉得有什么不妥)
缺点:性能比面向过程低(有前期准备,准备辣椒,肉,蛋---对象)
好了,下面要真的进入正题了^_^,毕竟我们今天课题是Java面向对象的思想
二、类和对象
面向对象编程的核心是类和对象,也就是将现实中的对象抽象成“类”,将抽象的类实例化成现实中一个个具体的对象,我是个吃货,所以还是拿吃饭打比方^_^:
类:
到饭店里面去,服务员给你一个菜单:菜单上会有这些分类:川菜,湘菜,鲁菜,粤菜.....,这些分类只是为了给你更好的体验,让你一眼就能知道自己应该菜单上哪个地方寻找自己心仪的菜品
对象: 你拿到菜单后,开始点菜,你不会跟服务员说来个川菜,而会说:老板,来个红烧排骨,一份辣子鸡丁,这里红烧牛肉和辣子鸡丁就是一个个具体的对象了
小结
类:描叙具有某些共同特征的同一类事物,比如湘菜都比较辣,鲁菜都比较甜....
对象:某一类事物中一个具体的存在,比如湘菜的辣子鸡丁,鲁菜的大葱海参....流口水了^_^
三、理解了类和对象,我们接下来说下面向对象三大特性:封装、继承、多态
封装概念:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。
看不懂?没关系,我再拿食物打比方,好饿啊....
每个厨师都有自己的绝技,很对餐馆都有自己的秘方,这个东西很多情况下是不能把自己的配方公之于众的,不然自己的招牌菜,私房菜就没有什么竞争价值了,但是如果有人想加盟你们这个饭店,怎么办?你是不是必须要让加盟店的口味跟你自己的总店保持一致?那么你就可以通过配送的方式,让加盟店直接拿到已经调配好的食材,这样,既不让自己的秘方外泄,又能让加盟店的风味保持跟总店一致,是不是这样就能理解了?
继承概念:继承是类与类的一种关系,顾名思义,属于父子关系,子类继承了父类某一项或者多项特征
继续用食物打比方,快饿死了....
无论川菜湘菜粤菜鲁菜,它们是不是都是菜?是不是都能吃?是不是都要放油盐佐料?那么我们说他们继承了这些共同的特性
多态概念:在继承的同时,会有自己的特征,这就是多态
继续用食物打比方,饿死算了....
湘菜的特点是辣,湘北湘西湘南湘中湘东的菜都归属于湘菜,但是却不是完全相同的辣,靠近重庆的叫麻辣,靠近江西的叫辛辣,靠近广东的叫微辣,湘中湘北叫香辣,这就是龙生九子各有所好
总结:以上只是让大家对Java面向对象编程有一个比较形象的概念,下一篇我将结合代码示例对以上概念做详细的讲解,附上今天内容的结构图
有需要资料的可以加群:1023705513
有需要资料的可以加群:1023705513