- 在OC类中创建一个类会生成两个文件:
.h文件(用于声明成员变量和方法)
.m文件(用于实现.h文件声明的方法) - 在.h文件中类的定义关键字使用@interface,结尾必须加上@end表示结束,OC中所有关键字都要加上@,OC的超类是NSObject。
例如:
@interface Student @end
- 在.m文件中定义类使用@implementation,结尾加上@end表示结束
例如:
@implementation Student @end
- OC类中的继承使用 : (冒号)
- 在.h文件中成员变量都写在{} (花括号)中,成员变量以_开始
例如:
@interface Student{ int _age; int _name; } @end
- OC中get方法是去掉成员变量 _ (下划线)以后的内容,如成员变量是_age,对应的get方法是age
- OC中set方法如果有参数使用:表示,有几个参数使用几个冒号
例如
@implementation Student -(int) setAge:(int)age{}//set方法名是:setAge: -(int) setAge:(int)age andNo:(int)no{} //set 方法名是:setAge:andNo: @end
- OC中静态方法使用 + (加号)表示,如果是对象动态方法使用 - (减号)表示,方法返回值类型和参数返回值类型都要放到 () 中,如:(int)
- OC实例化对象和调用对象方法都要写在[]中
- OC中接收对象要使用指针
- OC中实例化对象先申请内存空间alloc,然后调用init实例化对象
案例
Student.h
#import<Foundation/Foundation.h> @interface Student : NSObject{ //成员变量都写在此处 int _age; int _no; } //声明方法 -(void)age;//get方法 -(void)no;//get方法 -(int)setAge:(int)age;//set方法 -(int)setNo:(int)no;//set方法 //两个参数的set方法 -(int)setAge:(int)age andNo(int)no;//set方法方法名是setAge:andNo: @end
Student.m
#import "Student.h" @implementation Student //实现方法 -(void)age{ return _age; } -(void)no{ return _no; } -(int)setAge:(int)age{ _age = age; } -(int)setNo:(no){ _no = no; } -(int)setAge:(int)age andNo(int)no{ _age = age; _no = no; } @end
main.m
#import <Foundation/Foundation.h> #import "Student.h" int main(int argc,const char* argv[]){ @autoreleasepool{ //代码暂时写在此处 //第一种声明对象 //Student *stu = [Student alloc]; //stu = [stu init]; //第二种方式,推荐使用这种方式 Student *stu = [[Student alloc]init]; //调用set方法赋值 [stu setAge:20]; //调用get获取值 int result = [stu age]; NSLog(@"age is %d",result); //调用两个参数的set方法 [stu setAge:20 andNo:30]; //接收值 int r1 = [stu age]; int r2 = [stu no]; NSLog(@"age is %d,no is %d",r1,r2); //对象使用完需要释放 [stu release];//release申请释放,实例化几次就要销毁几次 } }
网友评论