[問題] 想問一個 Encapsulation 封裝相關的問題

看板java作者 (莫急莫慌莫害怕)時間9年前 (2015/12/29 23:41), 編輯推噓1(105)
留言6則, 2人參與, 最新討論串1/1
就是像這個教學 http://www.tutorialspoint.com/java/java_encapsulation.htm 寫個封裝的物件, 想說如果需要並且有必要設一個類似hashmap key唯一值, 假如 我有個Mac Address想把它設為唯一值需要怎麼做, 還是有其他觀念~ 想請教各位大大! public class EncapTest{ private String macAddress; private String name; public int getMacAddress(){ return macAddress; } public String getName(){ return name; } public void setMacAddress(String newAddress){ macAddress = newAddress; } public void setName(String newName){ name = newName; } } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.224.2.249 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1451403685.A.117.html

12/30 21:11, , 1F
自答:可以使用hashcode,不過很多細節需要注意
12/30 21:11, 1F

12/31 01:31, , 2F
hashCode不是讓你這樣用的...把mcaAddress加上final
12/31 01:31, 2F

12/31 01:33, , 3F
由建構子帶入 setMacAddress拿掉 這樣可以確保該instace
12/31 01:33, 3F

12/31 01:33, , 4F
的macAddress為唯一值
12/31 01:33, 4F

12/31 01:34, , 5F
或者都不動 直接在setMacAddress裡面判斷如果macAddress
12/31 01:34, 5F

12/31 01:34, , 6F
為null 就把值塞入 如果不是null 就不設定值 也可以
12/31 01:34, 6F
文章代碼(AID): #1MWgcb4N (java)
文章代碼(AID): #1MWgcb4N (java)