在Java中,int a和int a是兩個(gè)不同的變量,它們可以擁有不同的值,這是因?yàn)樽兞棵南嗤⒉淮碜兞勘旧硐嗤@纾?/p>
int a = 10; int a = 20; System.out.println(a); //輸出結(jié)果為20
在上面的代碼中,第二個(gè)a變量覆蓋了第一個(gè)a變量,導(dǎo)致最終輸出結(jié)果為20而非10。
但是,在同一個(gè)作用域中不允許出現(xiàn)同名的變量名,例如:
int a = 10; if (true) { int a = 20; //編譯錯(cuò)誤:變量a已經(jīng)定義過 }
上述代碼中,在if語句塊中定義的a變量與外部定義的a變量相同,因此會(huì)導(dǎo)致編譯錯(cuò)誤。這時(shí)可以考慮使用不同的變量名或使用更大范圍的作用域。
另外,Java還有一些規(guī)定的命名規(guī)范,例如變量名的首字母應(yīng)該小寫、多個(gè)單詞組成的變量名應(yīng)該使用駝峰式等等。這些規(guī)范能夠使代碼更加符合閱讀習(xí)慣,減少歧義。