下面将创建一个名为BNRPerson的类,它与Person的结构类似。我们需要使用两个文件来定义BNRPerson类:
- BNRPerson.h称为头文件或接口文件,包含实例变量和方法的声明。
- BNRPerson.m称为实现文件,包含所有方法的代码实现。
首先创建一个新项目,类型为基于Foudation的Command Line Tool,名称为BMITime。
创建的步骤是,选择File-New-New File...。在新出现的窗口左侧,选择OS X区域中的Cocoa,然后选择Objective-C class模板,然后点击Next按钮;
将类命名为BNRPerson,并将其设置为NSobject的子类;
下面图示为BNRPerson.h和BNRPerson.m的创建例子:
使用键盘快捷键Ctrl-Command-上箭头返回BNRPerson.m文件。可以使用这个快捷键在头文件和类的实现文件之间切换。
为之前在BNRPerson.h文件中声明的方法加入实现代码,实现的方法必须和在头文件中声明的方法名字相符。使用Xcode很容易完成这点,在实现文件中输入某个方法的前几个字母是,Xcode会根据已经声明的方法自动提供候选方法名。
这段代码实现了BNRPerson.h所声明的全部方法,BNRPerson类创建完毕,可以在程序中使用了。
打开main.m导入BNRPerson.h文件,现在main()可以查看BNRPerson类头文件的声明了:
存取方法的命名规范
Accessor naming conventions
为BNRPerson声明存取方法的时候,需要遵循Objective-C语言的命名规范。取方法的名字和相应的实例变量一下,但要去掉实例变量开头的下划线。
//声明实例变量
{
float _heightInMeters;
int _weightInKilos;
}
//取方法命名
-(float)heightInMeters;
-(int)weightInKilos;
存方法以set开头,后跟上去掉下划线的实例变量名。需要注意的是,存方法的命名是采用骆驼拼写法的。所以set后的第一个字母要大写。
//声明取方法——注意大小写!
-(void)setHeightInMeters:(float)h;
-(void)setWeightInKilos:(int)w;
最后的体验注意点:
可以用command+n来创造自定义类,当然包括子类,在main.m(main函数实现文件需要应用到自定义类的实例变量和方法一定要在头文件中倒入自定义类的声明文件,也就是类.h,切记切忌。