一、对象和消息
1、[object selector] [对象 消息选择器]
2、消息后的参数格式:关键字:参数 整体格式: 消息选择器:变量1 关键字:变量2
e.g:- (void)studyFrome:(NSInteger *)frome to:(NSInteger *)to;
3、关键字可省略 e.g 消息选择器:变量1:变量2
4、alloc生成类的对象,init初始化 e.g: [[object alloc] init]
二、类
一个类由Student.h 和 Student.m组成,.h就是类的接口定义,.m就是类的实现,m模块的意思
2.1类的接口声明
格式:
@interface Student : NSObject{//类名:父类名
//实例变量定义
int _age;
}
// 属性定义
@property static int weight;
//方法声明
- showClassName2;
- (id)showClassName;
- (void)studyFrome:(NSInteger *)frome to:(NSInteger *)to;
@end
1、类OC编译指令以@字符开头,目的和C区分开
2、interface类的声明开始,end结束
3、实例变量格式:变量类型 变量名
4、方法声明:这里只是定义了方法,具体的实现在.m文件里做。showClassName2和showClassName,id可以省略,默认返回id类型。(id类型可以存放任何数据类型的对象)
5、@property这种定义可以直接访问变量的setter/getter方法或者s.weight.weight访问实际上调用的就是setter/getter方法,上面的_age则不能,必须自己去写setter/getter方法才能调用。
2.2 类的实现
格式:
@implementation Student //类名
// 方法的定义
- (id)showClassName{
return self.className;
}
@end
1、以implementation开始,ent结束
2、.m文件可以随意使用.h中定义的变量。
3、.h中有的方法,这里可以实现,也可以定义一些.h中没有的方法。
4、.h中有定义的方法为公开的方法。
5、self是实例对象本身。
三、代码风格
1、静态变量
在函数内或类方法外指定了static的变量。生命周期为程序开始到结束。
OC中无论生成了多少个对象,都只有一个静态变量的存在。
e.g:
Student * s = [[Student alloc] init];
Student * s1 = [[Student alloc] init];
s.weight = 18;
S1.weight = 20;
NSlgo(@“s.weight:%d s1.weight:%d”,s.weight,S1.weight);
打印出来都是20
2、头文件
#import <Foundation/Foundation.h>
#import "Student.h"
import头文件引入,系统自动识别不会重复引用。
<>优先查找系统库,再查找本地。
“”只查找本地。
网友评论