objc的乙個特點就是動態型別(dynamic types),比如乙個id型別可以宣告為任何物件的型別。這樣就會出現乙個問題,我們常常不知道某個物件到底是屬於哪個類,或者某個物件是哪個類的子類,這時候怎麼辦呢?objc提供了一系列的方法來共我們呼叫判斷~下表就顯示了objc提供的一些方法:
然後我們可以寫乙個類和main函式來測測看。
//
// fraction.h
// fractiontest
//// created by dirk kim
#import // the fraction class
@inte***ce fraction : nsobject
@property int numerator, denominator;
-(void) print;
-(void) setto: (int) n over: (int) d;
-(double) converttonum;
// add argument to receiver
-(fraction *) add: (fraction *) f;
@end
//
// fraction.m
// fractiontest
//// created by dirk kim
#import "fraction.h"
@implementation fraction
@synthesize numerator, denominator;
-(void) print
-(void) setto: (int) n over: (int) d
-(double) converttonum
-(void) reduce
numerator /= u;
denominator /= u;
}-(fraction *) add: (fraction *) f
@end
編譯後,執行,得到的結果如下:#import "fraction.h"
int main (int argc, const char * argv)
return 0;
}
obj c程式設計04 類的繼承
以下的 中,我們寫了2個類 父類a和子類b,然後b中對a中的方法做了重寫。import inte ce a nsobject property int i void print end implementation a synthesize i void print end inte ce b a ...
ObjC中的類和例項物件
oc中類的本質是乙個結構體 nsobject類中存在乙個class型別的isa指標。我們在xcode編寫乙個類繼承於nsobject,在terminal使用xcrun sdk iphoneos clang arch arm64 rewrite objc xx.m o xx.cpp將.m檔案轉成.cp...
C 中類的繼承問題03
using system using system.collections.generic using system.text sealed class a 密封類可以例項化,但不能繼承 class c a a是密封類,所以不能繼承,只能例項化 所以此處編譯時是錯誤的 class d public ...