局部變量為什么需要顯式賦值,否則編譯不了


1、成員變量(全局變量)是可以不經初始化的,在類加載過程的准備階段即可給它賦予默認值,但局部變量使用前需要顯示賦予初始值,javac不是推斷不出不可以這樣做,而是沒有這么做,對於成員變量而言,其賦值和取值訪問的先后順序具有不確定性,對於成員變量可以在一個方法調用前賦值,也可以在方法調用后進行,這是運行時發生的,編譯器確定不了,交給jvm去做比較合適。
2、而對於局部變量而言,其賦值和取值訪問順序是確定的。這樣設計是一種約束,盡最大程度減少使用者犯錯的可能。假使局部變量可以使用默認值,可能總會無意間忘記賦值,進而導致不可預期的情況出現。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM