程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 為什麼有這個奇怪的設計

為什麼有這個奇怪的設計

編輯:關於JAVA

之所以感覺這個方案的奇特,因為它事實上的確如此。也許大家會奇怪它為什麼要象這樣運行,而該方案背後的真正含義是什麼呢?後面講述的是一個未獲證實的故事——大概是由於圍繞Java的許多買賣使其成為一種設計優良的語言——但確實要花許多口舌才能講清楚這背後發生的所有事情。

最初,Java只是作為一種用於控制硬件的語言而設計,與因特網並沒有絲毫聯系。象這樣一類面向大眾的語言一樣,其意義在於程序員可以對任意一個對象進行克隆。這樣一來,clone()就放置在根類Object裡面,但因為它是一種公用方式,因而我們通常能夠對任意一個對象進行克隆。看來這是最靈活的方式了,畢竟它不會帶來任何害處。

正當Java看起來象一種終級因特網程序設計語言的時候,情況卻發生了變化。突然地,人們提出了安全問題,而且理所當然,這些問題與使用對象有關,我們不願望任何人克隆自己的保密對象。所以我們最後看到的是為原來那個簡單、直觀的方案添加的大量補丁:clone()在Object裡被設置成“protected”。必須將其覆蓋,並使用“implement Cloneable”,同時解決違例的問題。

只有在准備調用Object的clone()方法時,才沒有必要使用Cloneable接口,因為那個方法會在運行期間得到檢查,以確保我們的類實現了Cloneable。但為了保持連貫性(而且由於Cloneable無論如何都是空的),最好還是由自己實現Cloneable。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved