Jython中的對象——面向?qū)ο蟮恼Z言概述
Jython中的對象
Jython是一種 面向?qū)ο?的語言,它完全支持面向?qū)ο缶幊獭ython定義的對象有以下特性:
1, 身份:每個對象都必須是獨(dú)特的,并且可以對其進(jìn)行測試。Jython支持 is 和 is not 測試以實(shí)現(xiàn)這一目的。
2,狀態(tài):每個對象都必須可以存儲狀態(tài)。Jython提供了 屬性 (也稱為 字段 或者 實(shí)例變量)以達(dá)到這一目的。
3,行為:每個對象都必須可以操縱其狀態(tài)。為此,Jython提供了 方法。
注意內(nèi)置函數(shù) id(object) 返回一個惟一整數(shù)身份值。這樣,表達(dá)式 x is y 就等同于 id(x) == id(y) 。
Jython中的對象——OOP 支持
Jython包含了以下功能以支持面向?qū)ο缶幊蹋?/P>
基于類創(chuàng)建對象:Jython類 是用于創(chuàng)建對象的模板。 對象 是具有關(guān)聯(lián)行為的數(shù)據(jù)結(jié)構(gòu)。
多態(tài)繼承:Jython支持 單繼承 和 多繼承。所有 Jython實(shí)例方法都是 多態(tài)的 (或者 虛擬的(virtual))并且可以被子類覆蓋。
封裝隱藏?cái)?shù)據(jù):Jython允許(但是不要求)隱藏屬性,因而在類以外只能通過類的方法訪問。類實(shí)現(xiàn)了修改數(shù)據(jù)的函數(shù)(稱為方法)。
Jython中的對象——定義類
定義類就像定義一個模塊,在其中可以定義變量和函數(shù)。與 Java 語言不同,Jython允許在每個源文件(或者模塊)中定義任意數(shù)量的 public 類。因此在 Jython中,模塊很像 Java 語言中的包。
在 Jython中,我們使用 class 語句定義類。class 語句格式如下:
- class name ( superclasses ): statement
或者
- class name ( superclasses ):
- assignment
- :
- function
- :
在定義類時,可以選擇提供零個或者多個 賦值 語句。它們創(chuàng)建這個類的所有實(shí)例所共享的類屬性。還可以提供零個或者多個 函數(shù) 定義。它們創(chuàng)建方法。父類列表是可選的。我們將在本教程稍后討論父類。
類名在同一范圍(模塊、函數(shù)或者類)中應(yīng)當(dāng)是惟一的。類名實(shí)際上是一個綁定到類正文的變量(類似于所有其他賦值)。事實(shí)上,可以定義多個變量引用同一個類。
Jython中的對象——創(chuàng)建類實(shí)例
類用于包含類(或者共享的)屬性或者創(chuàng)建類實(shí)例。要創(chuàng)建類的實(shí)例,只要把這個類當(dāng)成函數(shù)調(diào)用。不需要像在 C++ 或者 Java 語言中那樣使用 new 操作符。例如,對于類
- class MyClass:
- pass
下面的語句創(chuàng)建一個實(shí)例:
- x = MyClass()
【編輯推薦】





















