欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Objects:為對象類提供對象技術(shù)

科技綠洲 ? 來源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2023-09-20 14:14 ? 次閱讀

Objects

對象類簡介

IRIS 通過以下對象類提供對象技術(shù): %Library.RegisteredObject%Library.Persistent``%Library.SerialObject。

下圖展示了這些類之間的繼承關(guān)系,以及它們的一些參數(shù)和方法。 %Library 包的類名稱可以縮寫,因此(例如) %Persistent%Library.Persistent 的縮寫。這里,全部大寫的項(xiàng)目是參數(shù),以百分號(hào)開頭的項(xiàng)目是方法。

圖片

在典型的基于類的應(yīng)用程序中,可以根據(jù)這些類(以及專門的系統(tǒng)子類)定義類。所有對象都直接或間接繼承自這些類之一,并且每個(gè)對象都是以下類型之一:

  • 注冊對象是 %RegisteredObject 或其子類的實(shí)例??梢詣?chuàng)建這些對象,但無法保存它們。另外兩個(gè)類繼承自 %RegisteredObject,因此包含該類的所有參數(shù)、方法等。
  • 持久對象是 %Persistent 的實(shí)例或子類??梢詣?chuàng)建、保存、打開和刪除這些對象。

持久類會(huì)自動(dòng)映射到可以通過 SQL 訪問的表。

  • 串行對象是 %SerialObject 或其子類的實(shí)例。串行類旨在用作另一個(gè)對象的屬性??梢詣?chuàng)建這些對象,但不能獨(dú)立于包含它們的對象來保存或打開它們。

注意:通過類 %DynamicObject%DynamicArray, IRIS 還提供了處理沒有模式的對象和數(shù)組的能力。

對象類的基本特征

通過對象類,可以執(zhí)行以下任務(wù):

  • 可以創(chuàng)建一個(gè)對象(類的實(shí)例)。為此,可以使用該類的 %New() 方法,該方法繼承自 %RegisteredObject。
set myobj=##class(Sample.Person).%New()
myobj = iris.cls("Sample.Person")._New()

Python 方法名稱不能包含百分號(hào) (%)??梢酝ㄟ^將 Python 中的 % 字符替換為下劃線 (_) 來調(diào)用任何包含 % 字符的 ObjectScript 方法,如示例中所示。

  • 可以使用屬性。

可以在任何類中定義屬性,但它們僅在對象類中有用,因?yàn)橹挥羞@些類允許創(chuàng)建實(shí)例。

任何屬性都包含單個(gè)文字值、對象(可能是集合對象)或多維數(shù)組(罕見)。以下示例顯示了對象值屬性的定義:

Property Home As Sample.Address;

Sample.Address 是另一個(gè)類。下面顯示了設(shè)置 Home 屬性值的一種方法:

Set myaddress=##class(Sample.Address).%New()
 Set myaddress.City="Louisville"
 Set myaddress.Street="15 Winding Way"
 Set myaddress.State="Georgia"

 Set myperson=##class(Sample.Person).%New()
 Set myperson.Home=myaddress
import iris
myaddress=iris.cls("Sample.Address")._New()
myaddress.City="Louisville"
myaddress.Street="15 Winding Way"
myaddress.State="Georgia"

myperson=iris.cls("Sample.Person")._New()
myperson.Home=myaddress
  • 如果類或其超類定義了實(shí)例方法,則可以調(diào)用該類實(shí)例的方法。例如:
Method PrintPerson() [ Language = objectscript ]
{
 Write !, "Name: ", ..Name
}
Method PrintPerson() [ Language = objectscript ]
{
 Write !, "Name: ", ..Name
}

如果 myobj 是定義此方法的類的實(shí)例,則可以按如下方式調(diào)用此方法:

Do myobj.PrintPerson()
myobj.PrintPerson()
  • 可以驗(yàn)證屬性值是否符合屬性定義中給出的規(guī)則
    • 所有對象都繼承實(shí)例方法 %NormalizeObject(),該方法規(guī)范化所有對象的屬性值。許多數(shù)據(jù)類型允許相同值的不同表示。標(biāo)準(zhǔn)化將值轉(zhuǎn)換為其規(guī)范或標(biāo)準(zhǔn)化形式。 %NormalizeObject() 根據(jù)此操作是否成功返回 truefalse。
    • 所有對象都繼承實(shí)例方法 %ValidateObject(),該方法根據(jù)屬性值是否符合屬性定義返回 truefalse。
    • 所有持久對象都繼承實(shí)例方法%Save()。當(dāng)使用%Save()實(shí)例方法時(shí),系統(tǒng)會(huì)首先自動(dòng)調(diào)用%ValidateObject()。

相反,當(dāng)在例程級(jí)別工作并且不使用類時(shí),代碼必須包含用于檢查類型和其他輸入要求的邏輯。

  • 可以定義回調(diào)方法,以在創(chuàng)建、修改對象等時(shí)添加其他自定義行為。

例如,要?jiǎng)?chuàng)建類的實(shí)例,可以調(diào)用該類的 %New() 方法。如果該類定義了 %OnNew() 方法(回調(diào)方法),則 IRIS 也會(huì)自動(dòng)調(diào)用該方法。下面展示了一個(gè)簡單的例子:

Method %OnNew() As %Status 
{
    Write "hi there"
    Return $$$OK
}
Method %OnNew() As %Status [ Language = python ]
{
    print("hi there")
    return True
}

在實(shí)際場景中,此回調(diào)可能會(huì)執(zhí)行一些所需的初始化。它還可以通過寫入文件或global文件來執(zhí)行日志記錄。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 參數(shù)
    +關(guān)注

    關(guān)注

    11

    文章

    1860

    瀏覽量

    32443
  • SQL
    SQL
    +關(guān)注

    關(guān)注

    1

    文章

    775

    瀏覽量

    44268
  • 應(yīng)用程序
    +關(guān)注

    關(guān)注

    38

    文章

    3295

    瀏覽量

    57940
收藏 人收藏

    評論

    相關(guān)推薦

    求教關(guān)于“對象”方面編程的問題

    請求各位前輩指點(diǎn)關(guān)于“matlab生成對象”的問題。因?yàn)槲页鯇W(xué)matlab,所以按照參考書上的內(nèi)容,在創(chuàng)建了@polynom的目錄后,編寫完程序后,執(zhí)行不出來,總是提示“??? Error
    發(fā)表于 05-19 13:37

    關(guān)于LabVIEW 及其對象使用的疑問

    各位大神,我一直有個(gè)關(guān)于LabVIEW中使用的問題。。。。當(dāng)我建好一個(gè)之后,直接將其拖到一個(gè)VI的程序框圖中,相當(dāng)于一個(gè)對象,在這個(gè)VI中我可以隨便操作這個(gè)
    發(fā)表于 11-23 22:20

    如何使用“SR300”找到多個(gè)對象?

    我想找?guī)讉€(gè)對象。所以我實(shí)際上使用“The Metaio工具箱”找到了一個(gè)3D對象。但是,找到未被充分識(shí)別的多個(gè)對象存在問題。如何使用“SR300”找到多個(gè)對象?以上來自于谷歌翻譯以下為
    發(fā)表于 10-12 11:52

    沒有Xdm對象Spartan 6與ISE 12.2的組錯(cuò)誤

    對象,帶引用:INTERNAL_ERROR:Pack:pk***atsdesign.c:1344 :1.42- 沒有用于組TNM = Data_Out_Grp的Xdm對象,帶有引用
    發(fā)表于 05-23 09:03

    重置所有用戶對象和用戶功能的TitleBackColor

    大家好,我想在我的VEE程序中重置所有用戶對象/用戶功能的標(biāo)題背面顏色,因?yàn)椴煌念伾糜谙嗤愋偷?b class='flag-5'>對象。如果這不可能,那就好了,如果我可以將程序內(nèi)所有對象的顏色重置默認(rèn)設(shè)置。我將不
    發(fā)表于 06-13 09:32

    LabVIEW面向對象的ActorFramework(1)

    領(lǐng)域。面向對象是一種對現(xiàn)實(shí)世界理解和抽象的方法,是計(jì)算機(jī)編程技術(shù)發(fā)展到一定階段后的產(chǎn)物。 面向對象是相對于面向過程來講的,面向對象方法,把相關(guān)的數(shù)據(jù)和方法組織
    發(fā)表于 02-10 14:09

    談?wù)劽嫦?b class='flag-5'>對象編程

    在工業(yè)自動(dòng)化領(lǐng)域,梯形圖邏輯仍然是最常用的編程語言之一,但對于更加復(fù)雜的控制對象,面向對象編程不失一種高效率的方式。下面先來談?wù)劽嫦?b class='flag-5'>對象編程:面向
    發(fā)表于 09-08 07:47

    Java對象程序設(shè)計(jì)基礎(chǔ)

    Java對象程序設(shè)計(jì)基礎(chǔ) 一、實(shí)驗(yàn)?zāi)康模?     通過編制一個(gè)獨(dú)立應(yīng)用程序,使得學(xué)生掌握J(rèn)ava的系統(tǒng)所提供的引用方法;通過編制一個(gè)
    發(fā)表于 12-05 23:55 ?2821次閱讀

    對象_實(shí)驗(yàn)2

    c++面向對象課程實(shí)驗(yàn)指導(dǎo)書題目_對象。
    發(fā)表于 01-14 16:24 ?0次下載

    如何利用Python Remote objects技術(shù)實(shí)現(xiàn)分布式對象應(yīng)用系統(tǒng)

    討論了如何利用Python Remote objects技術(shù)來設(shè)計(jì)與實(shí)現(xiàn)分布式對象應(yīng)用系統(tǒng)!詳細(xì)闡述了其技術(shù)特點(diǎn)及系統(tǒng)架構(gòu)“并結(jié)合實(shí)例重點(diǎn)探討了基于Python Remote
    發(fā)表于 01-22 15:54 ?1次下載
    如何利用Python Remote ob<x>jects<b class='flag-5'>技術(shù)</b>實(shí)現(xiàn)分布式<b class='flag-5'>對象</b>應(yīng)用系統(tǒng)

    Chisel(三) Scala語法 對象

    在Scala中,是使用關(guān)鍵字“class”開頭的代碼定義的,定義完成之后,就可以“new?名”的方式來構(gòu)造一個(gè)對象,而這個(gè)對象的類型就
    的頭像 發(fā)表于 08-19 23:29 ?2227次閱讀

    Java實(shí)驗(yàn):對象的擴(kuò)展

    Java實(shí)驗(yàn):對象的擴(kuò)展
    發(fā)表于 07-08 15:36 ?20次下載
    Java實(shí)驗(yàn):<b class='flag-5'>類</b>和<b class='flag-5'>對象</b>的擴(kuò)展

    什么是不可變對象 不可變對象存儲(chǔ)可以抵御哪些威脅

    新建的對象。 基本數(shù)據(jù)類型的包裝以及String對象都是不可變對象。 不可變對象和可變
    的頭像 發(fā)表于 09-19 11:44 ?2599次閱讀

    對象是什么?

    前面講的面向過程和面向對象,大家都有了基本的了解,也用struct定義了,那么接下來咱們就用C++提供的另一個(gè)關(guān)鍵字class來定義,同樣的我們還是使用前面的學(xué)生結(jié)構(gòu),首先直接把s
    的頭像 發(fā)表于 02-27 15:36 ?598次閱讀
    <b class='flag-5'>類</b>和<b class='flag-5'>對象</b>是什么?

    Python中的對象詳解

    Python 是一種面向對象的編程語言,它支持對象。是一種用戶自定義的數(shù)據(jù)類型,用于定義對象的屬性和方法。
    的頭像 發(fā)表于 04-20 16:53 ?1241次閱讀