物件(object):系統中用來描述客觀事物的乙個實體。
物件是由類例項化產生的。
類(class)描述了一組具有相同特性(屬性)和相同行為(方法)的物件。
類和物件的關係如同模具和鑄件的關係,物件是類的例項化結果,而類是對物件的抽象。
如人是乙個類,張三,李四就是物件。
介面(inte***ce)是定義了一組方法(method)和屬性(property)的資料結構,通過這組資料結構,可以呼叫元件物件的功能。
在物件導向程式設計中,人們通過類的介面來使用類,介面由具體的類來實現,介面定義乙個物件能做什麼(what),而類定義它怎麼做(how).
ae中的三種類
ae中共分為3種類:
假設a為抽象類,b為普通類,c為元件物件類, a,b,c為對應的物件。
符號為普通的二維矩形
不能夠被建立或者例項化,抽象類用來定義子類的公共介面,子類繼承其定義的介面。omd(object model diagrams,物件模型圖)中每個抽象類至少有乙個子類。
如geometry是乙個抽象類,它不能直接建立,但是他的子類如point, polyline, polygon可以直接建立, geometry給出了所有幾何元素的共有屬性和方法。
符號為帶陰影的二維矩形
不能夠直接建立新物件,但可以作為其他類的物件的乙個屬性
如 b object = c.certainproperty;
或者從某個類的物件的方法來建立。
b object =c.certainmethod();
如featurecursor是乙個普通類,featurecursor不能用new建立,但可以通過ifeaturelayer.search()方法建立
ifeaturecursor pfeaturecursor = pfeaturelayer.search(spatialfilter, false);
這裡如果pfeaturelayer物件被銷毀,那麼依附於其上的pfeaturecursor也會消失,可以認為兩者之間是組成關係。
符號為三維立方體
可以用new 關鍵字來建立
imap pmap = new mapclass();
或者從別的物件獲得執行例項。
imap pmap = axmapcontrol1.map
arcengine中workspace 是乙個普通類,不能通過new來建立,但可以通過workspacefarctory.openfromfile()方法來建立。
如:iworkspacefactory pworkspacefactory =new accessworkspacefactoryclass();
accessworkspacefactoryclass是乙個元件物件類,可以直接new來新建乙個物件,iworkspacefactory是訪問該物件的介面。iworkspace pworkspace =
pworkspacefactory.openfromfile(connectionstring, 0);
openfromfile是iworkspacefactory介面中的乙個方法,這個方法的結果返回乙個workspace物件,該過程稱為例項化,我們通過iworkspace介面去訪問workspace物件。但當我們嘗試用new去建立乙個workspace類時,如下:
iworkspace pworkspace = new workspaceclass();
就會出現以下錯誤:
「型別」esri.arcgis.geodatabase.workspaceclass未定義建構函式;
這裡可以理解為coclass是帶建構函式的class,因此它可以用new直接建立物件 。
imap pmap = new mapclass();
這一步不單單是例項化出乙個map物件,同時把imap作為訪問該物件的預設介面,可以使用imap裡面的屬性(property)和方法(method)對地圖物件進行操作。pmap.name= 「test」;
通過imap中的name屬性來修改地圖物件。pmap.clearlayers();
通過imap中的clearlayers()方法來清除地圖中的所有圖層。pmap.clear();
執行這一步,出現錯誤。 因為clear()屬於在map類的另外乙個介面iactiveview所有,不可能從imap介面中得到這個方法。可以通過qi(query inte***ce,查詢介面)來切換到iactiveview上。
iactiveview pview = pmap as iactiveview;
或者iactiveviewpview = (iactiveview)pmap;pview.clear();
鷹屬於鳥類,是一種繼承關係。
例項化指某個類的物件具有建立另乙個類的方法。鷹(hawk)通過birth()這個方法可以創造乙個egg物件。
鷹和巢之間是鬆散的關聯關係,乙隻鷹可以擁有幾個巢,乙個巢可以讓幾隻鷹居住。
關聯關係具有方向性:單向關聯和雙向關聯。
聚合如鷹爸爸,鷹媽媽,鷹寶寶聚合成乙個家庭,但是當鷹寶寶長大離家之後,鷹寶寶依然存在,不會因為離開家庭而消亡。
鷹的翅膀和鷹的關係,翅膀離開鷹就沒有意義,沒有價值了,翅膀的生命週期與鷹的生命週期一致。
從聯絡的緊密程度來看,association< aggregation< composition.
可以這樣理解:聚合(aggregation)是一種特殊的關聯(association),組成(composition)是一種特殊的聚合(aggregation)。
如學生和課程的關係,乙個學生可以學習多門課程,乙個課程也會容納多名學生。
如學生和班級的關係,27個學生組成了10041451班,但任何乙個同學在轉出這個班級後仍然存在。
如雞和翅膀的關係,翅膀脫離了雞無法存在,沒有意義,只能淪為烤雞翅t_t
鷹
arcmap
常用資料型別介紹:
1、shapefile:一種基於檔案方式儲存gis資料的檔案格式,至少有.shp,.dbf,.shx三個檔案組成,分別儲存空間資料,屬性資料,空間和屬性資料之間的關係,是gis比較通用的一種資料格式。
2、coverage:一種拓撲資料結構,一般的gis原理書中都有它的原理論述,資料結構複雜,屬性預設儲存在info表中。目前arcgis中仍然有一些分析操作只能基於這種資料格式進行操作。
3、geodatabase:arcinfo 發展到arcgis時推出的一種資料格式,基於rdbms(關係型資料庫管理系統)儲存的資料格式。
三種類的設計
類是一種將抽象轉換為使用者定義型別的c 工具,它將資料表示和操縱資料的方法組合成乙個整潔的包。類宣告 以資料成員的方式描述資料部分,以成員函式 被稱為方法 的方式描述共有介面。類方法定義 描述如何實現類成員函式。簡單地說,類宣告提供了類的藍圖,而方法定義提供了細節。person 類具有 name 和...
SQL SERVER中索引型別包括的三種型別分別是
唯一索引 unique 聚集索引 clustered 非聚集索引 nonclustered 主鍵與唯一索引的區別 主鍵是一種約束,唯一索引是一種索引,兩者在本質上是不同的。主鍵建立後一定包含乙個唯一性索引,唯一性索引並不一定就是主鍵。唯一性索引列允許空值,而主鍵列不允許為空值。主鍵列在建立時,已經預...
程序 三種型別,三種狀態
一 程序的概念 程序是執行乙個程式時所分配的資源,資源包括占用的cpu,記憶體等,是乙個動態執行過程。二 程序的組成 正文段使用者資料段 系統資料段 程序控制塊 pcb cpu暫存器值 堆疊 三 程序控制塊pcb 程序控制塊是系統用來控制和管理程序,獲得程序狀態和程序存在特徵的唯一標識。包括 程序標...