2014-12-01 30 views
-1

好吧,我正在閱讀Android開發教程書籍:The Big Nerd ranch,我在第二章中告訴你需要有特定的前綴,並且在getter和setter之前沒有特定的前綴。成員變量中前綴的重要性是什麼?

「什麼是設置這些前綴的意義呢?現在,當你問的Eclipse 來生成mQuestion一個getter,它會創建getQuestion() 而不是getMQuestion()和isTrueQuestion(),而不是 isMTrueQuestion( )「。

爲什麼會有getMQuestion()有所作爲,是不是會與getQuestion()一樣?

感謝

+0

檢查:http://stackoverflow.com/questions/14143528/eclipse-generate-getter- setter-for-domain-objects-and-classmembers-with-m-suff – 2014-12-01 20:05:32

+0

這種做法有爭議:http://stackoverflow.com/questions/111605/what-kind-of-prefix-do-you-use-for - 成員變量?rq = 1 – Dawnkeeper 2014-12-01 20:11:09

+2

你想說'getQuestion()'而不是'getMQuestion()'的原因是因爲你試圖得到一個「問題」而不是「mquestion」,這是沒有意義的用英語。代碼可能會以任何方式工作,但編寫其他人可以理解的代碼非常重要。 – ajb 2014-12-01 20:16:03

回答

2

你把實例屬性和階級屬性之前,「S」的前綴,沒有前綴的局部變量之前的「M」字頭。這是一個標準,因此在閱讀類實現細節時,更容易區分變量範圍。

當您閱讀在這裏你看到三個變量的對象方法的代碼:mValue,S值,值 你知道: - mValue是對象屬性,因此通過修改你改變對象的狀態。 - sValue是類屬性,所以如果您要更改它,它將影響該類的所有對象。 - 值是本地屬性,在方法返回後立即收集垃圾 。

這個命名規則是類的實現細節這不應該是從外部可見的公共接口(干將,setter方法)

相關問題