。1 - 印刷領域の設定方法及び態様の方法で提供されるクラス、クラスの矩形の実施例 2 - 思考LUA実装クラス、いくつかのLuaのオブジェクト定義outが実際にアクセスするための独自のメンバー、メンバー関数にアクセスすることができ方法は、次になり、特定のポイントは何の機能も見つからないそれらの部材の機能を訪問し、その後テーブルおよびメタデータ__index要素法(もちろんあるが、存在しなければならない)があるかどうかを判定することで、元__indexテーブルによって実現されますアクセス要素に自然にメンバ関数にアクセスする、クラステーブルのメンバーである 3。 CFX = m_chang = { 0、m_kuan = 0、m_area = 0 } 4。 CFX .__インデックス= CFX 5。 機能CFX:新しい新しい(チャン、クアン) 。6 ローカルセルフ= {} 。7 setmetatable (セルフ、CFX) 。8 self.m_chang = チャン 。9 self.m_kuan = クアン 10 self.m_area =チャン・クアン 11 リターン自己 12 の端部 13 14 機能CFX:printAreaと() 15 プリント(" 长方形的面积为:" .. self.m_area) 16 の端部 17 18 機能CFX:SETC(チャン、クアン) 19 もしチャン次いで 20 self.m_chang = チャン 21 の端部 22 であればクアン次いで 23 self.m_kuan = クアン 24 の端部 25 self.m_area = self.m_chang * self.m_kuan 26 の端部 27 28 R1 = CFX:新しい(10、20 ) 29 R 1:プリント() 30 R 2 = CFX:新しい(30、40 ) 31 R 2:プリント() 32、R1 :エラネット(_ 50 ) 33 R 2:エラネット(50 ) 34 プリント(" -------------------------------- -------------------------------- " ) 35 R 1:プリント() 36 R 2:プリント() 37 38 39 40 - Luaの継承は、クラスは、そのメンバー(周長)と一緒に、上記矩形から継承と周囲印刷方法 41である - 建設同様継承はまた、上述したクラスに、C ++のように見ることができます親クラスの第一の構成は、その構成、そこは二つのクラスに構成されていることが理解されるであろう 42である Cfx_w m_zhouchang = = { 0 } 43れる Cfx_w .__インデックス= Cfx_w 44は setmetatable (Cfx_w、CFX) 45 46である 関数Cfx_w。新しい新しい(C、K) 47 ローカルセルフ= {} 48 自己= CFX:新しい(C、K)新しい 49 setmetatable (セルフ、Cfx_w) 50 self.m_zhouchang = 2 *(C + K) 51は、 戻り自己 52で 終了 53であります 54は、 55 機能Cfx_w:プリンツ() 56である self.m_zhouchang = 2 *(+ self.m_changのself.m_kuan) 57は、 プリント(" :長方形の境界" .. self.m_zhouchang) 58 エンド 59 60 機能Cfx_w:printAreaと() 61は プリント(" スーパークラスのメソッドをオーバーライドし、矩形領域である:" .. self.m_area) 62である エンド 63は R3 = Cfx_w:新しい新しい(10、5 ) 64 R3:printAreaと() 65 R3:プリンツ() 66 プリント("************************************************** ************** " ) 67 R 3:エラネット(2、2 ) 68の R3:プリント() 69の R3:プリンツ()
自分のメンバーの一部にアクセスすることができLUAでLuaの実装クラスの定義を考えてオブジェクトは、メンバ関数へのアクセスは、実際に元__indexメソッドテーブルによって実装され、特定のポイントは、その後、そのメンバ関数は、何の機能も見つからなかっ訪問することです元テーブルおよび__index要素法かどうかを決定する(当然存在するが、存在しなければならない)、それはアクセス・メタデータ・テーブルのメンバーになり、自然に、種類のメンバ関数への訪問です。