欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

2.OC类

程序员文章站 2024-01-14 21:16:22
...
  1. 在OC类中创建一个类会生成两个文件:
    .h文件(用于声明成员变量和方法)
    .m文件(用于实现.h文件声明的方法)
  2. 在.h文件中类的定义关键字使用@interface,结尾必须加上@end表示结束,OC中所有关键字都要加上@,OC的超类是NSObject。
    例如:
    @interface Student @end
  3. 在.m文件中定义类使用@implementation,结尾加上@end表示结束
    例如:
    @implementation Student @end
  4. OC类中的继承使用 : (冒号)
  5. 在.h文件中成员变量都写在{} (花括号)中,成员变量以_开始
    例如:
    @interface Student{ int _age; int _name; } @end
  6. OC中get方法是去掉成员变量 _ (下划线)以后的内容,如成员变量是_age,对应的get方法是age
  7. OC中set方法如果有参数使用:表示,有几个参数使用几个冒号
    例如
    @implementation Student -(int) setAge:(int)age{}//set方法名是:setAge: -(int) setAge:(int)age andNo:(int)no{} //set 方法名是:setAge:andNo: @end
  8. OC中静态方法使用 + (加号)表示,如果是对象动态方法使用 - (减号)表示,方法返回值类型和参数返回值类型都要放到 () 中,如:(int)
  9. OC实例化对象和调用对象方法都要写在[]中
  10. OC中接收对象要使用指针
  11. 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申请释放,实例化几次就要销毁几次
 }
}