日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

单根结构

發(fā)布時間:2024/8/5 综合教程 89 生活家
生活随笔 收集整理的這篇文章主要介紹了 单根结构 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在面向對象的程序設計中,由于C++的引入而顯得尤為突出的一個問題是:所有類最終是否都應從單獨一個 基礎類繼承。在Java 中(與其他幾乎所有OOP語言一樣),對這個問題的答案都是肯定的,而且這個終級基 礎類的名字很簡單,就是一個“Object”。這種“單根結構”具有許多方面的優(yōu)點。 單根結構中的所有對象都有一個通用接口,所以它們最終都屬于相同的類型。另一種方案(就象 C++那樣) 是我們不能保證所有東西都屬于相同的基本類型。從向后兼容的角度看,這一方案可與C 模型更好地配合, 而且可以認為它的限制更少一些。但假期我們想進行純粹的面向對象編程,那么必須構建自己的結構,以期 獲得與內建到其他 OOP 語言里的同樣的便利。需添加我們要用到的各種新類庫,還要使用另一些不兼容的接 口。理所當然地,這也需要付出額外的精力使新接口與自己的設計方案配合(可能還需要多重繼承)。為得 到C++額外的“靈活性”,付出這樣的代價值得嗎?當然,如果真的需要——如果早已是 C 專家,如果對C 有難舍的情結——那么就真的很值得。但假如你是一名新手,首次接觸這類設計,象Java 那樣的替換方案也 許會更省事一些。 單根結構中的所有對象(比如所有 Java 對象)都可以保證擁有一些特定的功能。在自己的系統(tǒng)中,我們知道 對每個對象都能進行一些基本操作。一個單根結構,加上所有對象都在內存堆中創(chuàng)建,可以極大簡化參數(shù)的 傳遞(這在 C++里是一個復雜的概念)。 利用單根結構,我們可以更方便地實現(xiàn)一個垃圾收集器。與此有關的必要支持可安裝于基礎類中,而垃圾收 集器可將適當?shù)南l(fā)給系統(tǒng)內的任何對象。如果沒有這種單根結構,而且系統(tǒng)通過一個句柄來操縱對象, 那么實現(xiàn)垃圾收集器的途徑會有很大的不同,而且會面臨許多障礙。 由于運行期的類型信息肯定存在于所有對象中,所以永遠不會遇到判斷不出一個對象的類型的情況。這對系
35
統(tǒng)級的操作來說顯得特別重要,比如違例控制;而且也能在程序設計時獲得更大的靈活性。 但大家也可能產生疑問,既然你把好處說得這么天花亂墜,為什么C++沒有采用單根結構呢?事實上,這是 早期在效率與控制上權衡的一種結果。單根結構會帶來程序設計上的一些限制。而且更重要的是,它加大了 新程序與原有C 代碼兼容的難度。盡管這些限制僅在特定的場合會真的造成問題,但為了獲得最大的靈活程 度,C++最終決定放棄采用單根結構這一做法。而 Java 不存在上述的問題,它是全新設計的一種語言,不必 與現(xiàn)有的語言保持所謂的“向后兼容”。所以很自然地,與其他大多數(shù)面向對象的程序設計語言一樣,單根 結構在 Java 的設計方案中很快就落實下來。

 1 package Com.TomTest;
 2 
 3 
 4 abstract class As {
 5        abstract  int min(int x,int y);
 6        int max(int x,int y) {
 7           return x>y?x:y;
 8        }
 9     }
10     class B extends As {
11        int min(int x,int y) {
12           return x<y?x:y;
13        }
14     }
15     public class TomTest_28 {
16        public static void main(String args[]) {
17          As a;
18          B b=new B();
19          int max=b.max(12,34);
20          int min=b.min(12,34);
21          System.out.println("max="+max+" min="+min);
22          a=b;        
23          max=a.max(12,34);
24          System.out.println("max="+max);
25        }
26     }

總結

以上是生活随笔為你收集整理的单根结构的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。