-
Java this 的使用问题
review 代码的时候,对对象自己的方法调用是否使用this有了点争议,重新看了下think in java,看到了下面的一句话,
我是非常认同这句话的,google了一下,发现确实有人问着问题:https://stackoverflow.com/questions/516768/using-this-with-methods-in-java。
一般情况下可能会考虑由于子类重载会导致未知问题,其实并不会导致什么问题。因为编译器在编译的时候,会自动把当前对象当做方法调用的第一个参数,这个和用this来调用是一样的,编译器已经帮助做过一次了,就没有必要再去做一次。
看看下面的例子,不管加不加this,最后结果都是一样的,所以没遇到特殊情况,就不要加this了,这样也会保持代码的统一,利于维护,为了一个可能几乎不会碰到的“例外”增加代码不统一性,没有必要。
class Parent { public void eat(){ System.out.println("Parent eat"); } public void showEat(){ this.eat(); } public void showEat1(){ eat(); } } class Child extends Parent { @Override public void eat(){ System.out.println("Child eat"); } } public class Application { public static void main(String[] args){ Parent p = new Parent(); p.eat(); // Parent eat p.showEat();// Parent eat p.showEat1();// Parent eat Parent pc = new Child(); pc.eat(); // Child eat pc.showEat();// Child eat pc.showEat1();// Child eat Child c = new Child(); c.eat(); // Child eat c.showEat();// Child eat c.showEat1();// Child eat } }
注意:代码的可为维护性,永远比使用一些特殊功能要重要,切记,切记。
原文:https://www.cnblogs.com/acles/p/14479605.html
最新更新
带有参数的装饰器
类装饰器
django中的auth模块与admin后台管理
python的日期处理
字符串常用方法
基本数据类型概述
python-map()函数基本用法
python带你实现任意下载AcFun视频数据~
bbs项目之注册功能
变量的定义和使用
三大常用数据库事务详解之三:事务运行
三大常用关系型数据库事务详解之二:基
三大关系型数据库事务详解之一:基本概
MongoDB常用命令(2)
MongoDB基本介绍与安装(1)
SQLServer触发器调用JavaWeb接口
SQL Server索引的原理深入解析
SqlServer2016模糊匹配的三种方式及效率问题
SQL中Truncate的用法
sqlserver 多表关联时在where语句中慎用tri
VB.NET中如何快速访问注册表
ASP.NET中图象处理过程详解
Vue(1)Vue安装与使用
JavaScript 语言入门
js将一段字符串的首字母转成大写
纯原生html编写的h5视频播放器
H5仿原生app短信验证码vue2.0组件附源码地
TypeScript(4)接口
TypeScript(3)基础类型
TypeScript(2)WebStorm自动编译TypeScript配置