再次了解JAVA中的面向对象实现

从学习java语言开始,就知道java是面向对象的。最开始的理解,就是java支持一种语法,一种面向对象的语法,例如:

Pencil pencil = new Pencil();

peicil.wright();

就是一个铅笔对象,有一个功能,就是写.最初只是背下来这种语法.并没有深入的去理解.最近抽时间,学习了一下go语言,在学习过程中,意外的了解了java中面向对象的实现方法.

java的一个特点,就是封装,封装的主要内容,是两项,一项是变量,另外一项是方法.将这两项内容进行封装,就构成了对象.对象主要包括的,也是这两项内容.在c语言中,最初定义的对数据操作的集合,是函数.函数,这个是很好理解的.

函数:就是针对输入和输出之间建立起来的一种规则.

在c语言中,函数是独立的,是不依赖雨上下文的.也就是说,这个函数,无论在哪里使用,都是可以的(忽略权限问题),效果都是相同的.但是在java语言中,由于有封装的特性,"函数"就有了上下文.也就是说,"java"中的函数,是依赖于上下文"对象"来使用的.为了区别表示,也就不能再用"函数"这个名称了,于是就改叫做"方法".

从c的自由,直接转向java的束缚,惊喜来的太突然,往往让我们看不清事实的真相.在转换过程中,究竟发生了什么?在长达两年的时间里,我不知道发生了什么.甚至从来没有想过,这里面会有什么.

但是在我学习go语言的过程中,有趣的事情发生了.<go语言编程>这本书里面提到,浅显一点的理解,面向对象和面向过程,在使用层面上,只不过是语法上的区别罢了.

例如:

function   boolean   Bigger(int fir,int sec){

return fir > sec;

}

上面是标准的面响过程的写法(此处抛开java的语法结构,单纯的理解为C语言的语法结构)

而下面的写法,则是面向对象的写法。

function (*Object obj)  boolean   Bigger(int fir,int sec){

return fir > sec;

}

上面的语法结构,表示调用Bigger方法的上下文(对象)为obj,返回值为boolean类型。参数是fir和sec。

为函数的执行指定一个特定的上下文,就变成了面向对象。

努力的看到这里,肯定也就茅塞顿开,明白了看似很先进的面向对象的实现过程。

如果对java稍微有一点了解,看到现在,也就明白了java中为什么会有this关键字了。

每个方法,都会有一个默认的this指针,用来限定方法执行的上下文。

前面我们已经提过了,java中的对象,是封装了字段和方法,两项内容。

简单的说就是对数据结构和运算逻辑进行了封装。我们在描述一项事物的时候,最简单的就是进行数据量化描述。例如,你描述你女朋友,可能是身高170cm,体重50kg。这就是对象里面的字段。用来存放数据的。

再高级一点,在描述过程中,加入对象的一些功能。例如:你的女朋友有洗衣服的功能(虽然很多没有)。这就是方法。

将字段和功能性的方法封装在一起,并规范上下文的范围,就形成了对象。

而在实现过程中,需要额外添加内容,只有this指针。在字段和方法的使用过程中,添加指针,就形成了新的面向对象的特性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值