[Java基础] 非静态方法什么时候要写this.调用,什么时候不用?
场景1完全可以省略this.当没有命名冲突时写不写this.效果完全一样。通常为了代码简洁省略它。// 你的代码中 ElyOrderLogistics logistics getBySuperMasterNo(superMasterNo); // 实际上等价于 ElyOrderLogistics logistics this.getBySuperMasterNo(superMasterNo);场景2必须写this.在构造方法或Setter 方法中。当方法的参数名和类的成员变量名一模一样时为了告诉编译器“我要赋值给类的属性而不是参数自己赋给自己”就必须用this.来区分。public class ElyOrderTrack { private String superMasterNo; // 成员变量 public void setSuperMasterNo(String superMasterNo) { // 参数名也叫 superMasterNo // 必须加 this. 否则变成局部变量自己赋给自己了 this.superMasterNo superMasterNo; } }场景3绝对不能写this在静态方法static方法中是绝对不能使用this关键字的。因为this代表当前对象的实例而静态方法属于类本身在它执行时可能根本还没有创建任何实例对象。// 比如你代码里的这个静态方法 private static String nextSuperMasterNo() { // 如果在这里写 this.xxx 就会直接报编译错误 return SUPER_MASTER_PREFIX ...; }总结实际项目开发中 对于方法调用 省略this.