Java中的this关键字

以下是学习了《Thinking in Java》一书中记录的内容

看了下本书的this关键字章节,主要讲了this的使用和static的含义;

对于this,很常见,也常用,this本身就是指的当前对象,用在当前对象属性方法的调用和传递当前对象的引用;

在本书中,对this的用处有两个建议:

1、不建议在方法的调用前使用this,原因如下:(此处是个争议点,这里只是《Java编程思想》一书中的一个观点而已)

有些人执意将this放在每一个方法调用和字段引用前,认为这样“更清晰更明确”。但是,我们使用高级语言的原因之一就是他们能帮我们做一些事情。要是你把this放在一些没有必要的地方,就会使读你程序的人不知所措,因为别人写的代码不会到处使用this。人们期望只在必要处使用this,遵循一种一致而直观的编程风格能节省时间和金钱。

2、建议this使用在构造器中调用构造器,但是注意使用合规

一个类多个构造器的情况下,有时有可能想在一个构造器中调用另外一个构造器,以避免重复代码。可用this关键字做到这一点。

熟悉了this,就能用来对比static。static方法就是没有this的方法。因为this本身是针对对象的。

static方法很像全局方法。Java中禁止使用全局方法,但是在类中置入static方法就可以访问其他static方法和static域。

书中提到一个争议点:

有些人认为static方法不是“面向对象”的,因为他们的确具有全局函数的语义;
使用static方法时,由于不存在this,所以不是通过“向对象发送消息”的方式来完成的;
要是在代码中出现了大量的static方法,就该重新考虑自己的设计了,然而,static的概念有其实用之处,许多时候都要用到;
那对于这样的争议,我们是否还要去探讨它是否真的“面向对象”呢?

你可能感兴趣的:(Java)