Re: 程式語言文法簡化 (was: [問題] 從文字檔讀取먠…
※ 引述《sbrhsieh (sbr)》之銘言:
: 我想或許你可以把 Java 中的 package privilege 類比成 C++ 中的 friend 機制,
: 只是 Java package privilege 是比較 coarse-grained 的作法(同一個 package
: 裡的 class 都是 friend,可以互相存取不那麼公開的 member)。C++ 的 friend
: 機制雖然可以比較精確去設定 friend-ship,但是一旦建立起 friendship 就可以
: 任意存取對方的任一個 member,就這部分而言,則是 C++ 的機制比較粗糙一些。
嗯,這樣確實好理解多了,比方說如果整個 package 只有我在動的話,
我也當然不會亂寫。因此可以把整個 package 視為某種程度的個體。
至於 C++ friend 的狀況,我覺得這或許跟 Java 有 inner class
這種東西有關。inner class 也可以存取 private, 因此不需要 friend.
C++ 沒有這種東西,只好靠 friend 來取巧了。
有時候會在想,如果說有某種 annotate 詳細限制各種 method
存取的權限... 或許太走火入魔了一點。也許 default privilege
這樣定也是希望不要有太嚴格的存取權限?
: : 有時候為了避免讓同一個 package 存取,我得額外分 package,
: : 不然就是直接改成 public 算了。這讓我覺得很困擾...
: : say, java.util.date.Date 和 java.util.collections.HashMap
: 這部分可以再多加敘述說明嗎?是什麼樣的情況?
其實只是因為我比較少寫龐大的程式,大部份的都是小東西,
因此會希望只有 1~2 個 package. 但就算是小程式,
往往也會有很多不相關的 class, 我會希望他們互相沒有關係。
可是由於是同個 package, 除非訂成 private, 不然仍然能互相存取。
多開一點 package 嘛,又覺得很麻煩。有時候只有一兩個 class...
--
「行け!Loki!」(rocky ロッキー)
-Gurumin ぐるみん 王子? XD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.28.18
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 6 之 7 篇):