接口:
一個很奇怪的現象,創建OC文件會有兩個文件生成,一個是.h
文件,一個是.m
文件,其中.h
文件被稱爲接口文件或者頭文件,.m
文件則被稱爲實現文件。
兩者功能如下:
.h頭文件管理接口部分;.m文件管理實現部分。
類:
接口標誌:@interface
…@end
oc文件都以end結尾
類的作用:聲明類的實例變量和方法
類所包含的內容:類名、父類名、實例變量、實力方法等。
舉個例子:
.h實現:
@interface Person:NSObject {
// 屬性
@public
NSString *_name; // 姓名
NSString *_sex; //性別
int _age; //年齡
}
// 行爲
- (void)sayHello;
- (void) eat;
@end
.m實現:
@implementation Person
- (void) sayHello {
NSLog(@"你好,我叫%@,今年%d歲",_name,_age);
}
- (void) eat{
NSLog(@"我要去喫飯了");
}
@end
其中.h文件和.m文件沒有很大的關係,只是爲了方便管理,實現封裝。
方法:
OC中的方法分爲類方法
與實例
方法,
1 其中類方法只能類調用,如:+(id)alloc
,注意⚠️:類方法中不能使用實例變量
2 實例方法:只能被對象調用,如:-(void)sayHello
方法的聲明:
方法的使用:
[person sayHello];
在OC中使用消息發送機制:[接收者 方法]
說詳細一點就是:給student對象發送sayHello消息。需要兩個步驟:
1 student接收到消息,即方法sayHello;
2 student找到sayHello方法,並執行。
對象的創建:
對象的創建分兩步:1 分配內存空間 2 對象初始化
分配內存空間:Person *p = [Person alloc];
初始化:p = [p init];
我們可以簡化成:Person *p = [[Person alloc] init];
生成對象後便可以調用對象的屬性及方法
Preson *p = [[Preson alloc] init];
p->_name = @"張三"; //操作實例變量
p->_age = 20; //操作實例變量
[p sayHello]; //調用方法
NSLog(@"張三的年齡%ld",p->_stuAge); //打印結果
運行結果:
你好
name=張三,age=20
張三的年齡20
更多文章查看個人主頁:
Github搭建個人博客(2019最新版,親測)