1、创建一个新文件,选择OS X下Cocoa(IOS下Cocoa Touch)中Objective-C class模板
2、输入类名,如:Student。在Subclass of(子类属于)选项中,选择NSObject。
可以这么说,几乎所有的类都继承与NSObject。
官网关于Cocoa框架有如下介绍:
Cocoa supplies two root classes: NSObject and NSProxy.
这就解释了所谓的“几乎”。剩下不继承NSObject的都继承NSProxy,因为NSProxy的应用比较特殊,在Cocoa程序中比较少见,具体的例子可以参考官方API说明文档中关于NSProxy类的介绍,里面讲到了一些例子,比如NSDistantObject。
3.创建一个类后,在项目中会生成两个文件,Student.h文件和Student.m文件。
扩展:源代码文件扩展名对比
从上图可以看到OC中的类含有两个文件:
.h 文件,类的声明文件,用于生命变量、方法,不作任何实现。
.m 文件,类的实现文件,用于实现.h文件中的方法。
特别注意:在初学阶段,先不要勾选Automatic Reference Counting,在上一篇博客中已经说到,OC不同于Java的地方有一点就是OC没有垃圾回收机制,使用的是引用计数机制,需要手动回收,这一点我到后面的内存管理上会讲,大家先不要着急。ARC(Automatic Reference Counting)机制就是省掉了我们自己回收垃圾的代码,他会自动识别进行内存管理。如果我们想要弄清楚OC回收内存的原理,就先不要勾选ARC,等我们弄清楚原理以后再勾选也不迟。现在我们的目的就是学习。
1、@interface关键字
打开Student.h文件,声明一个类,代码如下:
//声明一个类
@interface Student:NSobject{
int age; //属性要放在大括号里
//int no;
}
@end
上述的代码声明了一个类,类名SimpleClass,继承自NSobject 。定义的方法属性放在上面两个@语句之间。属性放在大括号里。
2、get方法
-(int) age;
age的get方法默认与属性名相同,还有一点需要补充的,就是在OC中,动态方法用“-”表示,静态方法用“+”表示。
3、set方法
-(void) setAge:(int ) newAge;
一个“:”对应一个参数,如果有两个参数,则:
-(void) setAge :(int)newAge andNo:(int) newNo;
1、导入头文件
#import <Foundation/Foundation.h>
#import "Student.h"
2、实现类中的方法,关键字:@implementation
@implementation Student
//get方法的实现
-(int)age{
return age;
}
//set方法的实现
-(void)setAge:(int)newAge andNo:(int)newNo{
age=newAge;
no=newNo;
}
@end
四、在main.m中调用
1、先导入头文件
#import "Student.h"
2、创建一个对象
(1)调用一个静态方法alloc来分配内存
Student *stu=[Student alloc];
(2)调用一个动态方法init来进行初始化
stu=[stu init];
以上流程大家理解了吧,那就垃圾代码合在一起:
Student *stu=[[Student alloc] init ];
3、调用setAge方法
[stu setAge:100];
4、调用get方法
int age=[stu age];
5、打印一下
NSLog(@"年龄:%i",age);
6、释放对象
[stu release];
这一部分看不懂的会在以后内存管理中单独说,大家不要着急。
注意:以上方法都是为了好理解,方法比较复杂,以后熟悉以后我还会为大家逐渐介绍几种简单方法,两行代码就能代替get,set方法,怕大家理解不了所以先上直观方法。有OC基础的请自动略过