全部產品
Search
文件中心

PolarDB:基本對象概念

更新時間:Sep 11, 2024

本章講述如何在SPL中使用物件導向的編程技術。

正如在Java和C++等程式設計語言中所瞭解的,物件導向的編程著重於對象的概念。對象是現實世界實體的表示形式,如個人、地點或事物。對特定對象(如個人)的統一描述或定義稱為物件類型。特定的人(如“Joe”或“Sally”)就是所謂的物件類型的對象“個人”,相當於物件類型的執行個體“個人”,或簡單地說就是“個人對象”。

注意事項

本文檔中在此之前所使用的術語“資料庫物件”和“對象”不應與本章中使用的物件類型和對象相混淆。這些術語以前的用法與可在資料庫中建立的實體(如表、視圖、索引、使用者等)有關。在本章的上下文中,物件類型和對象是指SPL程式設計語言支援的特定資料結構,用於實現物件導向的概念。

在Oracle中,抽象資料類型 (ADT) 用於描述 PL/SQL 中的物件類型。物件類型的SPL實現旨在與Oracle抽象資料類型相容。

PolarDB PostgreSQL版(相容Oracle)還沒有實現對物件導向的程式設計語言的某些功能的支援。本章僅介紹已實現的一些功能。

概念

物件類型是對某一執行個體的描述或定義。物件類型的定義分為兩部分:

  • 屬性:描述對象執行個體的特定特點的欄位。對於個人對象,屬性樣本可能包括姓名、地址、性別、出生日期、身高、體重、眼睛顏色、職業等。

  • 方法:對對象執行某種類型的功能或操作或與對象相關的程式。對於個人對象,方法樣本可能包括計算個人年齡、顯示個人特徵、更改分配給個人特徵的值,等等。

屬性

每個物件類型必須至少包含一個屬性。屬性的資料類型可以是以下任意一種:

  • 基礎資料型別 (Elementary Data Type),如NUMBER、VARCHAR2等。

  • 其他物件類型。

  • 全域定義的集合類型(由CREATE TYPE命令建立),如巢狀表格或動態數組。

屬性在最初建立對象執行個體時擷取其初始值(可能是空值)。每個對象執行個體都有其自己的一組屬性值。

方法

方法是物件類型中定義的SPL預存程序或函數。方法可分為三種常規類型:

  • 成員方法:在對象執行個體的上下文中啟動並執行預存程序或函數。成員方法可訪問它們運行所在的對象執行個體的屬性,並且可更改這些屬性。

  • 靜態方法:獨立於任何特定對象執行個體啟動並執行預存程序或函數。靜態方法無法訪問並且無法改變對象執行個體的屬性。

  • 建構函式方法:用於建立物件類型的執行個體的函數。預設建構函式方法始終在定義物件類型時提供。

重載方法

在物件類型中,允許定義兩個或多個具有相同類型(這是預存程序或函數)但具有不同特徵的同名方法。此類方法稱為重載方法。

方法的特徵由形參的數量、資料類型及其順序組成。