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 } }View Code
注意:代碼的可為維護性,永遠比使用一些特殊功能要重要,切記,切記,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/266209.html
標籤:Java
