試圖深層復制合成對象時會遇到一個問題。必須假定成員對象中的clone()方法也能依次對自己的句柄進行深層復制,以此類推。這使我們的操作變得復雜。為
下面讓我們復習一下本章早些時候提出的Vector例子。這一次Int2類是可以克隆的,所以能對Vector進行深層復制: //: Addi
若研究一下第10章介紹的那個Java 1.1對象序列化示例,可能發現若在一個對象序列化以後再撤消對它的序列化,或者說進行裝配,那麼實際經歷的正是一
若新建一個類,它的基礎類會默認為Object,並默認為不具備克隆能力(就象在下一節會看到的那樣)。只要不明確地添加克隆能力,這種能力便不會自動產生
之所以感覺這個方案的奇特,因為它事實上的確如此。也許大家會奇怪它為什麼要象這樣運行,而該方案背後的真正含義是什麼呢?後面講述的是一個未獲證實的故事
為消除克隆能力,大家也許認為只需將clone()方法簡單地設為private(私有)即可,但這樣是行不通的,因為不能采用一個基礎類方法,並使其在衍
克隆看起來要求進行非常復雜的設置,似乎還該有另一種替代方案。一個辦法是制作特殊的構建器,令其負責復制一個對象。在C++中,這叫作“副本
盡管在一些特定的場合,由clone()產生的本地副本能夠獲得我們希望的結果,但程序員(方法的作者)不得不親自禁止別名處理的副作用。假如想制作一個庫
完全可以創建自己的只讀類,下面是個簡單的例子: //: Immutable1.java// Objects that cannot be
從表面看,不變類的建立似乎是一個好方案。但是,一旦真的需要那種新類型的一個修改的對象,就必須辛苦地進行新對象的創建工作,同時還有可能涉及更頻繁的垃
請觀察下述代碼: //: Stringer.javapublic class Stringer { static String upc
這裡總結一下同時適用於String和StringBuffer的方法,以便對它們相互間的溝通方式有一個印象。這些表格並未把每個單獨的方法都包括進去,
由於Java中的所有東西都是句柄,而且由於每個對象都是在內存堆中創建的——只有不再需要的時候,才會當作垃圾收集掉,所以對象
在Java 1.0中,圖形用戶接口(GUI)庫最初的設計目標是讓程序員構建一個通用的GUI,使其在所有平台上都能正常顯示。但遺憾的是,這個目標並未
這是我去年給朋友們寫的文章,希望對你能夠有所幫助 開發手機游戲的一點心得 應用開發環境的選擇和配置 2003年三月份,我剛開始接觸了手機游戲的開發
對於本章要學習的“老式”AWT,它最嚴重的缺點就是它無論在面向對象設計方面,還是在GUI開發包設計方面,都有不盡如人意的表
庫通常按照它們的功能來進行組合。一些庫,例如使用過的,便中斷擱置起來。標准的Java庫字符串和矢量類就是這樣的一個例子。其他的庫被特殊地設計,例如
我們可在不必建立網絡連接的前提下進行一次簡單的測試,方法是啟動我們的Web浏覽器,然後打開包含了程序片標簽的HTML文件(Sun公司的JDK同樣包
這個程序不會太令人緊張,所以讓我們試著增加一些有趣的圖形組件。 //: Applet2.java// Easy graphicsimpo
觀看框架方法的實際運作是相當有趣的(這個例子只使用init(),start()和stop(),因為paint()和destroy()非常簡單,很容