物件型別是使用者自定義的一種復合資料型別,它封裝了資料結構和用於操縱這些資料結構的過程和函式。在建立複雜應用程式時,通過使用物件型別可以降低應用開發難度,進而提高應用開發的效率和速度。
1.物件型別元件
物件型別包括屬性和方法,其中,屬性(attribute)用於描述物件所具有的特徵,而方法(mothod)則用於實現物件所執行的操作。
例如,雇員物件型別employee_type應該具有編碼、姓名、工資、崗位以及部門號等屬性,還應該具有用於調整崗位、調整工資、調整部門的方法。
物件型別 employee_type
屬性:方法:
eno編碼
change_job
調整崗位
name
姓名change_sal
調整工資
salary
工資change_dept
調整部門
job崗位
dno部門號
2.物件型別和物件例項
物件型別(object type)是為了描述現實世界物件所抽象出來的具體特徵,應該涵蓋對所具有的公用特性。例如,每個雇員都有編碼、名稱、工資、崗位和部門號等特徵,所以物件型別employee_type應該包含這些特徵的描述。object instance是物件型別的具體實現,對應於現實世界的具體物件。例如,雇員scott和smith是物件型別employee_type的兩個物件例項。
3.構造物件型別
物件型別規範(object type specification)和物件型別體(object type body)兩個部分,其中,物件型別規範是物件與應用的介面,它用於定義物件的公用屬性和方法;而物件型別體則用於實現物件型別規範所定義的公用方法。例如,當監理物件型別employee_type,首先需要監理物件型別規範,其次需要通過物件型別體實現公用的物件方法。如下圖所示:
物件型別規範employee_type
定義公用屬性:
eno、name、salaty、job、dno
定義公用成員方法:
change_job、change_salaty、change_dept
物件型別體employee_type
實現所有成員方法:
change_job
change_salary
change_dept
4.物件型別屬性
物件型別屬性用於描述物件所具有的特徵,例如物件型別employee_type具有eno,name,salary等屬性,這些屬性分別用於描述雇員編碼、姓名和工資。物件型別最少要包含乙個屬性,最多可以包含1000個屬性。當定義物件型別屬性時,必須要提供屬性名和資料型別,物件屬性可以使用多數oracle資料型別,但不能使用以下資料型別:
long和long raw;
rowid和urowid;
pl/sql特有型別(例如binary_intger,boolean,%type,%rowtype,ref cursor,record,pls_integer等)。
注意,在定義物件型別屬性時,既不能指定物件屬性的預設值,也不能指定not null選型。
5.物件型別方法
物件型別方法用於描述物件所要執行的操作。當定義物件型別時,既可以定義方法,也可以不定義方法。在定義方法時,可以定義構造方法、member方法、static方法、map方法以及order方法。
6.物件表(object table)
物件表是指包含物件型別的表。對於普通表而言,其列全部使用標量資料型別(例如number,varchar2,date,long,lob等);而物件表至少包含乙個物件型別列(例如employee_type型別)。oracle又包含行物件和列物件兩種物件表,其中行物件是指直接基於物件型別所建立的表,而列物件則是指包含多個列的物件表:
--行物件:create table employee of employee_type;
--列物件:create table department(
dno number,dname varchar2(10),
employee employee_type);
7.物件型別繼承(type inheritabce)
物件型別繼承是指乙個物件型別繼承另乙個物件型別。物件型別繼承由父型別(supertype)和子型別(subtype)組成,其中父型別用於定義不同物件型別的公用屬性和方法,而子型別不僅繼承了父型別的公用屬性和方法,而且還可具有自己的私有屬性和方法。
8.ref資料型別
ref是指向行物件的邏輯指標,是oracle的一種內建資料型別。建表時通過使用ref引用行物件,可以使不同表共享相同物件,從而降低記憶體占用,並提高了應用效能。假定基於物件型別employee_type建立了行物件employee,那麼在建立department表時,為了引用行物件employee中的資料,可以使用ref資料型別。示例如下:
create table department(
dno number(2),dname varcar2(10), emp ref employee_type);
XMLHttpRequest物件簡介
1.xmlhttprequest的定義 2.xmlhttprequest的建立 3.屬性 http 請求的狀態.當乙個 xmlhttprequest 初次建立時,這個屬性的值從 0 開始,直到接收到完整的 http 響應,這個值增加到 4。狀態名稱描述 0uninitialized 初始化狀態。xm...
物件導向簡介
大多數高階語言都有這個東西,並且原理都是差不多的 物件導向是一種程式設計思想,是前輩們總結出來的經驗,指導程式設計師如何寫出更好的程式 核心是物件,程式就是一系列物件的集合。它具有 靈活性,擴充套件性,重用性 將問題流程化,從而簡單化,新增功能太過麻煩 優點 邏輯清晰,複雜問題簡單化,流程化 缺點 ...
NAT型別簡介
1 完全透明nat full cone nat 從相同內部主機 in ipx 埠 in portx 傳送的資料對映為相同的ip outip x 和埠 out port x 傳送到外網。並且從另乙個伺服器 y 如果直連到對映的ip out ip x 和埠 out port x 上,資料將會被 到內部主...