Java:變數的賦值操作(祭奠我那悲催的基礎知識)

DM--Tutor發表於2012-11-12

        今天編寫系統程式,本來是一個引數傳遞問題(後面會有專門的帖子說這個問題),可是寫著寫著思緒就有點飄渺,偏偏就是這個時候出現了一個讓我意想不到的語句問題,一個讓我感到非常莫名其妙的問題,也是讓我感覺很慚愧的問題,恍恍惚惚到網上查詢答案,還真找到了這個類似的問題,看到下面的回覆,心裡一陣涼,很多人都不屑,感覺這種問題很好笑,應該是沒有入門或者剛入門的菜鳥才會問的問題。自己學習程式設計也很長時間了,C、C++、C#、java一路走來,也做過幾個專案,但是卻被這樣的問題卡主了,並且百思不得其解,頓時內心有種羞辱的感覺。可靜下心來回頭想想,這可能僅僅一個對映點,自己本來就是個菜鳥,一個剛剛學了些皮毛的東西就覺得自己很牛逼的屌絲菜鳥,這才是自己應該感到真正羞辱的原因,路漫漫其修遠兮,自己還是需要靜下心來好好把眼前小事做好,欲速則不達,切記!

         說了這麼多牢騷話,還是把問題列出來說一下吧,一來可以為自己以後查閱提供方便,二來為其他人做個參考,下面通過編寫一個簡單的Class加以說明:

public class Test()
{       
         int i=1;
         i=2;
}

       上例中定義一個Test類,在類中定義了一個int型別的變數i,定義以後就對它進行賦值,這個時候系統就報錯,編譯不通過,但是回想自己以前程式設計的時候用到過類似這種方法,為什麼不行呢,然後又編寫了一個方法,在方法中用這樣的句子,方向沒有報錯,頓時想起來以前這樣用的時候是在C語言裡,Java這樣不行應該是語法問題吧,查閱資料得出了答案:

        1、Java中類裡面只包含變數和方法;

        2、Java中除定義和宣告外的其他語句都需要放在方法內部,方法必須放到類中,上例中int i=1;是一個定義和宣告變數語句,而下面的i=2是一個賦值語句,需要放在方法中進行;

        3、Java中不存在全域性變數,只有成員變數和區域性變數,static類似於C中的全域性變數,成員變數在定義的時候會有系統預設值,區域性變數必須在定義的時候賦值;

        4、程式有資料和指令組成,在預處理的時候需要分清哪一個是資料,哪一個是指令,Java認為資料來源自變數,執行指令源自方法,變數最後載入到暫存器,執行指令由算數邏輯單元執行;

        上面寫的可能太籠統,需要到java虛擬機器中進一步找答案,不過算一個開始吧,自己需要好好加油了!

相關文章