物件導向 class

2021-09-12 09:52:49 字數 858 閱讀 8275

@class主要是避免#import導致死迴圈的問題

由於@class僅僅是告訴編譯器後面的名稱是乙個類,所以編譯器並不知道這個類中有哪些屬性和方法,所以在.m中使用這個類時需要import這個類,才能使用

@class僅僅是告訴編譯器,@class後面的名稱是乙個類,不會做任何的拷貝

具體使用:

有乙個person人類,人類中有乙個屬性是dog 養的狗

有乙個dog狗類,狗類中有乙個屬性是person 主人

如果上述的情況使用在.**件中使用#import則會導致死迴圈,所以在.**件中使用@class進行解決

#import @class dog;

ns_assume_nonnull_begin

@inte***ce person : nsobject

@property dog *dog;

@end

ns_assume_nonnull_end

#import "person.h"

#import "dog.h"

@implementation person

@end

#import @class person;

ns_assume_nonnull_begin

@inte***ce dog : nsobject

@property person *p;

@end

ns_assume_nonnull_end

#import "dog.h"

@implementation dog

@end

Lua 物件導向(class)

一 class 定義純 lua 類 基類 定義乙個名為 shape 的基礎類 local shape class shape 這是乙個純lua類 ctor 是類的建構函式,在呼叫shape.new 建立shape物件例項時自動呼叫 function shape ctor shapename self...

物件導向程式設計(class) 2

繼承是物件的特性之一 子類會覆蓋父類的相同方法,如何使用父類相同的方法 classp def init self,name self.name name class c p def init self,name,age self.age age 呼叫父類相同的方法 super init name 單...

ABAP的物件導向 class的定義

size medium 類的定義與類的實現是分開的 class myclass definition.定義了3個public的方法,分別是 set increment get 其中 set 各包含乙個i型別的輸入引數,get 返回乙個i型別的值.public section.methods set ...