我在我的業餘時間一個Java devloper,我只是想知道什麼是差異「level.tick()」和「Level.tick(水平)」
level.tick()
之間的差異
Level.tick(level)
(「級別」是類的名稱和「水平」是類中的一個對象)
我知道,由於Java作品引用對象,調用從類的靜態函數通過級別爲pa rameters肯定會爲「level.tick()」
(請注意,這不是一個項目,我的工作,我只是認爲我會問) )
我在我的業餘時間一個Java devloper,我只是想知道什麼是差異「level.tick()」和「Level.tick(水平)」
level.tick()
之間的差異
Level.tick(level)
(「級別」是類的名稱和「水平」是類中的一個對象)
我知道,由於Java作品引用對象,調用從類的靜態函數通過級別爲pa rameters肯定會爲「level.tick()」
(請注意,這不是一個項目,我的工作,我只是認爲我會問) )
兩者都可以實現相同的功能。最常見的是你使用第一個實例方法聲明。但是,如果級別可以是null
,那麼您需要在該調用之前添加檢查。第二個靜態方法聲明可以包含這個檢查並減少你要寫的樣板。
public class Level {
public void tick();
public static void tick(Level level);
}
level.tick(); // Safe to call if level can't be null
Level.tick(level); // Safe to call in any case
設計的應用程序,以便變量的值是沒有或只有在特殊情況下是null
可以節省你大量的頭痛。
如果我理解正確的話,
我知道,由於Java作品引用對象,調用由傳遞水平作爲參數類的靜態函數肯定會爲「level.tick相同的效果( )」
Level.tick(level)
並不會自動轉化到
level.tick()
這隻有當你有一個靜態函數,它具有第二種形式作爲主體時纔有效。
你能告訴我們'Level'類嗎?我們只能在不知道如何聲明'tick()'和'tick(Level l)'的情況下猜測答案。 – jlordo