与C对比的话,Java的最大特点是它是一种面向对象的语言,那么面向对象到底是什么意思?今天就来简单聊一聊。
现实世界中,随处可见的一种事物就是对象,对象是事物存在的实体,如人类、书桌、计算机、高楼大厦等。人类解决问题的方式总是将复杂的事物简单化,于是就会思考这些对象都是由哪些部分组成的。通常都会将对象划分为两个部分,即动态部分与静态部分。静态部分,顾名思义就是不能动的部分,这个部分被称为“属性”,任何对象都会具备其自身属性,如一个人,它包括高矮、胖瘦、性别、年龄等属性。然而具有这些属性的人会执行哪些动作也是一个值得探讨的部分,这个人可以哭泣、微笑、说话、行走,这些是这个人具备的行为(动态部分),人类通过探讨对象的属性和观察对象的行为了解对象。
这打个比方,把写一个程序想象成做一张桌子:
使用面向过程的思路:桌子,要用木头做,所以我要种树,树种好了,我要砍木头;可是没铁,开个铁矿先;有矿石了,造个炼铁房;炼好铁,做成锯子,锯木,做铁锤,做钉子;但是我不会装桌子,去学学木工,最后桌子做好了。
接下来是面向对象:我要做桌子,要木头,直接从建材市场买;没铁钉铁锤,直接从五金商店买;不会装桌子,直接请个木工,桌子完成。
所谓面向对象,如上例,我要木头,从建材市场这个对象拿,调用建材市场这个对象中出售木头这个方法,返回我一个木头,至于建材市场的木头哪来的,我不知道,也不用知道,为什么这个社会有各行各业?他们全都是对象,都有一个方法,返回该职业能返回给社会的事物,之所以说面向对象更接近于人的正常思维,妙处就在这,我们把能拿到我们想要的东西的出处抽取成一个对象,我们直接访问它,拿到我们要的东西,它又从它该拿到东西的对象处拿东西,看似互不相干,却又有很多关系,这就是面向对象,每一个对象,一个方法,只做它自己该做的事,其他的,交给其他的方法,其他的对象。
面向对象相比面向过程,更接近于人的思维,而复杂的活则更多地交给编译器去做,虽然可能由于编译器不够智能而使得最终重新效率偏低,但是却加快了程序员的工作效率。
上一篇:为什么要学习Java开发
下一篇:学习java需要用到哪些软件?
一级建造师二级建造师消防工程师造价工程师土建职称房地产经纪人公路检测工程师建筑八大员注册建筑师二级造价师监理工程师咨询工程师房地产估价师 城乡规划师结构工程师岩土工程师安全工程师设备监理师环境影响评价土地登记代理公路造价师公路监理师化工工程师暖通工程师给排水工程师计量工程师
执业药师执业医师卫生资格考试卫生高级职称护士资格证初级护师主管护师住院医师临床执业医师临床助理医师中医执业医师中医助理医师中西医医师中西医助理口腔执业医师口腔助理医师公共卫生医师公卫助理医师实践技能内科主治医师外科主治医师中医内科主治儿科主治医师妇产科医师西药士/师中药士/师临床检验技师临床医学理论中医理论