分類(類别)
作用:擴充已有類的功能
1、分類是原來的類增加方法
2、在方法内部可以通路原有類的成員變量(定義頭檔案中)
@interface CZPerson (Drink)
步驟
1、為原有類建立一個分類
2、在分類中增加新的方法的聲明和實作
注意點:
1、分類中不能擴充原有類的成員變量
2、@property在分類中隻能生成getter setter方法的聲明,不能生成實作和成員變量
分類可以擴充系統自帶的類的功能
給NSObject增加分類會影響到所有的類,但是這個東西一定要謹慎小心
3、你不能在分類中定義與原有類同名方法,不同的分類之間也不可以有同名的方法
4、如果你再分類中增加一個原有類同名方法 ,那麼分類中個方法會覆寫原有類的方法(哪怕你沒有導入這個分類)
5、多個分類中如果有相同方法,最後編譯分類的方法
類擴充:一般情況下在.m檔案中,為類增加私有的屬性和方法
1、小括号中不可以有任何内容
2、一般寫在.m檔案中,增加類的私有成員變量、屬性、方法
例如在類的
@interface CZPerson ()
{
// 增加私有成員變量
int _age;
}
// 增加私有屬性
@property (nonatomic,copy) NSString *name;
//增加私有方法
- (void) show;
@end
@implementation CZPerson
- (NSString*)description
{
[self show];
return [NSString stringWithFormat:@"age = %d,name = %@",_age,_name];
}
- (void) show
{
NSLog(@"%d,%@",_age,self.name);
}
@end