對于學過多門語言的開發者來說,應該都明白在不同語言中對參數指派有着不同的意義,
總的來說參數有值傳遞和引用傳遞兩種,
而在Java中隻有值傳遞的概念。
這意味着在方法内對參數指派是沒有意義的。
而且還很容易引起代碼的誤解。
對于初學者來說這一點比較重要,可能不是很容易了解,我們用例子來說明。
修改參數
我們來看個簡單的例子,在這個例子裡面我們在方法内對參數進行了修改,
這段代碼的輸出還不至于讓人糊塗,
但如果修改的是對象的話,代碼可能就有誤導性了
修改參數對象
為了說明這個問題,我寫了一個demo代碼,當然代碼是完全跑不通的。。隻是為了讓代碼更容易了解,是以才這麼寫,
這段代碼了解上來就是,執行個體化了一個日期對象是4月1日,然後在方法内對日期加了一天,
然後再對這個日期(應該變成了4月2日)換車一個5月2日的對象,
這時候就可以驗證對參數指派和對參數修改的差別所在。
如果這代碼運作正常的話,輸出應該是下面這樣
你看,在方法内對參數指派是沒有意義的,因為Java它傳遞的是值,而不是引用,是以并不能夠修改原引用的數值。
這對于從 C 這種可以傳引用的語言轉過來的開發者來說其實有點别扭,
當然他們也可能會被這種代碼誤導。
總結
Java是一門傳值語言,在coding中其實應該盡量避免對參數指派的行為,
如果你看到代碼中有這樣的代碼,
請盡情重構了它吧!
歡迎工作一到五年的Java工程師朋友們加入Java架構開發:468947140
點選連結加入群聊【Java-BATJ企業級資深架構】:https://jq.qq.com/?_wv=1027&k=5zMN6JB
本群提供免費的學習指導 架構資料 以及免費的解答
不懂得問題都可以在本群提出來 之後還會有職業生涯規劃以及面試指導
對本文感興趣、喜歡的歡迎關注小編,小編持續更新