java 板


LINE

一些補充 XD 有時候會覺得有些人好像會把一些補充心得之類的回覆, 看成是一種反駁... 所以聲明一下,沒針對什麼。 ※ 引述《adrianshum (Alien)》之銘言: : 比如 C# 在 override 的時候要加上 override : keyword (現在 java 也可以加 @Override 了, : 不過相比之下 C# 的做法比較好), 雖然 99% 的情 : 況下, 你都是要override 的, 但萬一有一次, 你 : 其實是想建一個新 method, 怎麼不小心和 super : class 的 method 同名了, compiler 就可以靠著 : 你少打這字提出 warning/error. 這點我有同感,Scala 也是要求「一定要」寫 override. 我曾經在寫 C++ 時,執行起來覺得很奇怪, 一直沒有叫到我要的 method, 檢查半天才發現, method signature 有點相異,沒有被視為 override, 變成 overloading. compile 時不會有任何警告。 但如果一定要寫 override, signature 不對時, compiler 會告訴你 you override nothing... 不過 C++ 的 virtual, 也有一點 @Override 的味道在。 比方說原本就沒有設計要做 virtual method, 就算 subclass 誤用到同名 method + signature, 也不會因此 override 到不該 override 的東西。 當然啦,virtual 的設計是拿來做最佳化,跟 @Override 關係不大就是了。 : public 要 explicit, 某程度我覺得是由 C++ : 或其他 OOP 的做法帶過來, 但當初別人決定 public : 雖然是最常用但還是要 explicitly 聲明, 很可能就 : 是因為他們覺得東西不該隨意給其他人看到, 除非你 : 真的想給別人看. 萬一有人是忘了給 accessibility : modifier 而不是故意不給的話, 那東西就不該給其他 : 人看到, 所以 C++ 是當成 private, Java 可能因為覺 : package 內或 child class 的都是 "自家人" 所以把 : accessibilty 侷限在這. C++ 不會有這樣囉嗦的問題,是因為 public: 之後全是 public, 而 Java 卻要全部都打出來。因此 C++ class 預設 private, 感覺是沒什麼差。而 Java 的 protected... Class Package Subclass World public Y Y Y Y protected Y Y Y N no modifier Y Y N N private Y N N N 為什麼沒這個 Y N Y N 我還是不懂... 這樣看起來,Java 是把 package 視為比 subclass 更狹小的範圍。可能因為我 Java 寫太少吧 XD 只是因為 C++ 的使用習慣,實在不覺得 protected 應該被 同個 package 的 class 存取。除非,我用一大堆 package, 每個 package 可能只放 subclass 這樣 :p 但這樣也未免太麻煩了一點,畢竟 package 也會影響 source path. 而下 class path, 那會更恐怖。 -- 「行け!Loki!」(rocky ロッキー) -Gurumin ぐるみん 王子? XD --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.28.18
1F:推 ogamenewbie:package 比 subclass 更親近, 像家人跟朋友的差別. 08/21 15:26
2F:→ adrianshum:樓上: 我反而覺得 subclass 才像家人,畢竟"血統"有關連 08/21 18:11
3F:推 ogamenewbie:你寫你自己一家, 我 extend 你家的sub是我家不是你家. 08/21 18:19
4F:→ adrianshum:當extend,就是 is-a 的關係了,is-a怎都比非is-a親近吧 08/21 18:52
5F:推 ogamenewbie:所以你對我寫的sub的信任程度高過你自己本家package? 08/21 18:56
6F:推 ogamenewbie:你在想的是你自己弄 package 跟 subclass... 08/21 18:58
7F:推 ogamenewbie:請想想一群公司/團體/個人自己分別有 package... 08/21 18:58
8F:→ ogamenewbie:互相 extend 來 extend 去的情況. 08/21 18:59
9F:→ adrianshum:package 作為logical grouping,說是親近我實在不能苟同 08/21 19:07
10F:→ MonyemLi:java該是希望少用extends的,在這情況下,到處都interfac 08/22 08:37
11F:→ MonyemLi:只允許同package底下的class存取是很有幫助的 08/22 08:39
12F:→ MonyemLi:java有蠻多實作,你去複製原始碼貼到你的程式會不能用 08/22 08:41
13F:→ MonyemLi:因為他跟你的package不同,叫不到...以上是我個人心得 08/22 08:43
14F:→ MonyemLi:話說推文的等待時間太長了吧...1分鐘 08/22 08:46
15F:→ qrtt1:搬去同一個社區就可以用他的資源了 XD 08/22 08:56







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BabyMother站內搜尋

TOP