Objective C 基础教程
復合
使用復合可組合多個對象,使之人工協作。
會同時使用繼和復合來創建自己的類。
編程中的復合就好像音樂中的作曲一樣;將多個組件組合在一起配合使用。
在Objective-C中,復合是通過包含作為實例變量的對象指針實現的。
@interface Unicycle : NSObject
{
Pedal *pedal;
Tire *tire;
}
@end
pedal 和tire通過復合的方式組成了Unicycle(獨輪車)
Car 程序
如何搭建汽車模型。
CarParts 包含在主程序mainCarParts.m中。
#import <Foundation/Foundation.h>
@interface Tire : NSObject
@end
@implementation Tire
- (NSString *) description
{
return (@"I am a tire. Ilast a while");
}
@end
Tire類中唯一的方法是description,沒有在接口中聲。
Cocoa神奇的幫助
自定義NSLog()
通過NSLog()可以使用%@格式符來輸出對象.
%@會詢問參數列表中相應的對象以得到這個對象的描述。
從技術上講,就是NSLog()給這個對象發送描述消息,然后對象的description方法生成一個NSString并返回。
在類中添加description方法就可以自定義NSLog()如何輸出對象
在自定義的description方法中,你可以選擇返回一個字面值NSString.如@"I am a cheese Danish Object"
,也可以構造一個描述該對象所有此類消息的字符串。
在Cocoa中,NSArray類管理的是對象集合。
它的description
?方法調度
當代碼發送消息時,Objetive C的方法調度程序將在當前類中搜索相應的方法。
如果高度程序無法在接收消息的對象類中找到相應的方法,它就在該對象的超類中進行[。
[shape setFillColor:kRedColor] Objective -c 方法調度程序將查找接收該消息的對象Circle類有一個指向其它代碼的指針,
消息
實例變量
創建一個新類時,其對象首先從自身的超過類中繼承實例變量,然后添加它們自己的實例變量。
@interface RoundedRectagnle : shape
{
int radius;
}
@end
內存布局
繼承在子類和超類之間建立了一種"isa"關系, 所以NSobject的實例變量稱為isa
使用更具體種類的對象,稱為多態
?
每個方法調用都獲得一個名為self的隱藏參數,它是一個指向接收消息的對象的指針方法使用self參數來查找它們要使用的實例變量 ,
?
?
轉載于:https://www.cnblogs.com/yushunwu/archive/2012/08/08/2627597.html
總結
以上是生活随笔為你收集整理的Objective C 基础教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图说寻址路线
- 下一篇: tmpfs加速并降低squid负载(一)