java学习心得——面向对象的含义

上大学时,有一门公共课,名字叫做面向对象编程。课程内容是C++,但上完两学期,我也不能很好的理解面向对象的概念。

直到学习了java,感受到了,对象的概念深入骨髓的感觉。仅仅因为对“方法”的调用语法,就让我了解了面向对象的意义。

首先,我们要了解面向对象,要知道与面向对象对应的是什么,不面向对象的话,它是面向哪里呢?

答案是面向过程。一些基础编程语言比如C,就是面向过程的。

那面向过程和面向对象分别是怎样的概念呢,他们之间的区别在哪,为什么要面向对象而不面向过程。

来举一个生活中的小例子吧:

比如,我们要描述做饭的话,我们要说,买菜、摘菜、洗菜、切菜、炒菜、盛菜,这就是面向过程。

当我们每天都需要做饭的时候,我们不想这么麻烦了,我们把这个过程,统称为做饭。

于是做饭 = {买菜、摘菜、洗菜、切菜、炒菜、盛菜},做饭成为了一个函数,C++叫函数,java叫方法。

这也就是我们要说的面向对象的特性之一,封装性。(概念不需深入理解,且把故事听完。)

面向对象是对面向过程的一种升级,二者并非格格不入,而类似一种包含关系。

好的,现在我们有了“做饭”的“方法”。当我们吃饭的时候,不能直接“做饭”。

为什么?因为得有人会做饭,才能“做饭”啊。

所以,以家庭为例,我们有了一个对象,叫老婆,她具备“做饭”这个方法。

当我们想吃饭的时候,我们调用 老婆.做饭,就可以吃到可口的饭菜了!

(哈哈,这里没有性别歧视,只是一个例子,莫怪莫怪。)

老婆厨艺越来越好,只会一种做饭还不行,要会做早饭、午饭、晚饭,给家人做家常菜,家里来客人了还要做招待客人的饭菜。

于是老婆就会有很多个做饭的方法。这些做饭的方法,应用的场景有所区别,内容也有不同。

而这些方法又同属于做饭,如果每个都要换名字,不仅程序很复杂,调用起来也会很麻烦。

于是我们就干脆都叫“做饭”,然后通过接收不同的参数来达到区分他们的效果。

这就是面向对象的第二个特性,多态

后来剧情又发展了,夫妻二人生了一个女儿。

女儿跟老婆学做饭,学化妆,学怎样相夫教子。(也可以学习编程技术,只是举例哈。)

我们不想再给女儿写一遍“做饭”“化妆”“相夫教子”,因为这些内容在老婆那里已经写过了。

于是,我们让女儿直接继承老婆。

这就是面向对象的第三个特性,继承


有没有发现,不知不觉,我们已经将一个现实世界,用一个程序的结构描述了出来?这就是面向对象!

它是一种思维模式,也是这种思维模式下产生的程序设计方法。

这样设计出来的程序,可以很容易的复用、扩展,提高我们的效率。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值