接口:
一个很奇怪的现象,创建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
方法的声明:
方法的使用:
在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最新版,亲测)