JAVA--面向对象理解

首先,打开百度来看看百度是如何定义面向对象的:

面向对象(Object Oriented)是软件开发方法。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。
面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式。

面向对象是一种对现实世界理解和抽象的方法”该如何理解?这个世界有数不尽的事物,比如人,动物,植物,食物等等,面向对象就是把世界上的每个事物都看成一个个对象,然后根据分成类,每个对象都可以属于不同的类,这在于我们抽象的程度,比如一个人,他既可以属于人类,又可以属于父亲类,也可以属于老师类。我们的需求是分析老师与学生的关系,那这个人就可以是属于老师类,我们要研究人与动物的关系,就可以把他看成人类。

显然,面向过程是相对于面向过程来说的。那么我们再看看百度对于面向过程的描述:

面向过程(Procedure Oriented)是一种以过程为中心的编程思想。这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响。与面向对象明显的不同就是封装、继承、类。简写为POP。

然后,再来看看《核心技术》中对于面向对象的理解:面向对象的程序是由对象组成的,每个对象包含对用户公开的特定功能部分和隐藏的实现部分。程序中的很多对象来自标准库,还有一些是自定义的。究竟是自己构造对象,还是从外界购买对象完全取决于开发项目的预算和时间。但是,从根本上来说,只要对象能够满足要求,就不必关心其到底是如何实现的。

最后,我喜欢做饭,我用做饭来解释面向对象和面向过程这两种思想。

面向过程就像是做一道蛋炒饭,当然,蛋炒饭可不仅仅是只有鸡蛋,炒的过程中可以加火腿肠,加牛肉,加鸡丝,我个人喜欢多加个蛋,加辣条。。。扯远了。总之,无论是你自己做还是去饭店买,你都得事先讲清楚自己的需求:到底加不加菜,加什么菜,多油少盐还是少油多盐,加不加葱花等等,这些都必须在炒菜之前想好,在炒菜的过程中对这些饭啊菜啊加工,注意,一旦炒完了,你再说多加个蛋,或者说不吃鸡蛋,那还有机会挽回吗?这体现了以过程为中心的思想来完成需求,或者想要的功能。

而面向对象就是盖浇饭。有各种米饭,白米饭,黑米饭,杂粮米饭,有各种菜,牛肉,鸡腿,压腿。。。。米饭和菜就是两个对象,当我想要一份盖浇饭,我只需要执行一个操作(方法),那就是把想吃的菜在饭上!!!面向对象体现了把事物看作对象,通过对对象操作来实现预期的功能。

面向过程的语言以C语言为代表,面向对象的语言常用的如Python、C++、Java。

最后一个问题,到底哪种语言好呢?其实,事物都是发展的,都有两面性,没有绝对的
孰优孰劣,满足需要就行了,没有最牛逼的编程语言,只有最牛逼的程序员。我学的是Java,当然还是说一下面向对象的好处,做饭的例子太过于通俗口语化了,再举个实际业务中的例子。我想开发一个WEB浏览器,实现这个需求可能要几千个过程,这些过程对一组全局数据操作,但是采用面向对象的程序设计思想,可能只抽取了几十个类,每个类里由几十个方法。这样,一旦程序出现了问题,我就不用像面向过程设计思想中那样几千个过程逐一排查,我只需要找到哪个类错了,然后类中哪个方法错了,这就简单太多了。当然,这个例子中面向对象的好处还有很多,比如WEB浏览器开发新功能更容易拓展,开发人员更换,新接手的开发人员对该业务维护更容易等。

面向对象编程(Object -Oriented Programming OOP)的世界里,一切皆对象,简而言之,就是以类的方式组织代码,以对象的方式组织(封装)数据,类也是对象,方法也是对象。一种思想的彻底理解不是一朝一夕可以做到的,需要不断在实践中摸索,思考!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值