IOS开发基础Object_C——02 第一个OC类

来源:互联网 时间:1970-01-01

一、创建一个类

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文件,声明一个类,代码如下:

[code]//声明一个类@interface Student:NSobject{ int age; //属性要放在大括号里 //int no;} @end


上述的代码声明了一个类,类名SimpleClass,继承自NSobject 。定义的方法属性放在上面两个@语句之间。属性放在大括号里。

2、get方法

[code]-(int) age;


age的get方法默认与属性名相同,还有一点需要补充的,就是在OC中,动态方法用“-”表示,静态方法用“+”表示。

3、set方法

[code]-(void) setAge:(int ) newAge;


一个“:”对应一个参数,如果有两个参数,则:

[code]-(void) setAge :(int)newAge andNo:(int) newNo;


三、类的实现

1、导入头文件

[code] #import <Foundation/Foundation.h> #import "Student.h"


2、实现类中的方法,关键字:@implementation

[code]@implementation Student//get方法的实现-(int)age{ return age;}//set方法的实现-(void)setAge:(int)newAge andNo:(int)newNo{ age=newAge; no=newNo;}@end


四、在main.m中调用

1、先导入头文件

[code] #import "Student.h"


2、创建一个对象

(1)调用一个静态方法alloc来分配内存

[code] Student *stu=[Student alloc];


(2)调用一个动态方法init来进行初始化

[code]stu=[stu init];


以上流程大家理解了吧,那就垃圾代码合在一起:

[code]Student *stu=[[Student alloc] init ];


3、调用setAge方法

[code] [stu setAge:100];


4、调用get方法

[code] int age=[stu age];


5、打印一下

[code]NSLog(@"年龄:%i",age);


6、释放对象

[code][stu release];


这一部分看不懂的会在以后内存管理中单独说,大家不要着急。

注意:以上方法都是为了好理解,方法比较复杂,以后熟悉以后我还会为大家逐渐介绍几种简单方法,两行代码就能代替get,set方法,怕大家理解不了所以先上直观方法。有OC基础的请自动略过



相关阅读:
Top