2.OC类
程序员文章站
2024-01-14 21:16:22
...
- 在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申请释放,实例化几次就要销毁几次
}
}
上一篇: iOS,OC过滤字符串中的特殊字符
下一篇: 野指针与悬空指针