当前位置:   article > 正文

类的定义和实现

定义和实现

1.类的定义

 在类的定义中,关键字为 interface ,关键字后面为类名,类名一般情况下首字母大写 冒号后面 NSObject 是父类 

命名时要见名知意

大驼峰命名:命名时每个单词的首字母大写 一般用于类的命名

小驼峰命名:第一个单词首字母小写,以后每个单词的首字母大写,一般用于实例变量和参数的命名

(-)对象方法(实例方法):对象方法只能给对象调用,不能给类调用

(+)类方法:只能给类调用,不能给对象调用

  1. @interface Student : NSObject//类名的首字母大写,以后每个单词的首字母大写
  2. {
  3. //类似于结构体
  4. // 实例变量的定义 ,命名通常以_开头,第一个单词的首字母小写,以后每个单词的首字母写
  5. // 实例变量必须包含在大括号内
  6. NSString *_name ; //NSString 是 OC 系统提供的字符串类
  7. NSInteger _age ; // NSInteger 是 long 类型
  8. }
  9. //构造方法(初始化方法)
  10. //id 类似于 C语言中的 void *
  11. // - 说明该方法是一个对象方法(实例方法):实例方法就是给类的实例调用的方法
  12. // 该方法无传入参数
  13. // 返回值是一个id(范型)类型的对象 方法名是 init
  14. -(id)init ;
  15. //setter 方法:修改实例变量值的方法
  16. //有一个传入参数 name
  17. //无返回值
  18. //方法名 setName :
  19. -(void)setName : (NSString *) name ;
  20. -(void)setAge : (NSUInteger) age ;
  21. //有两个传入参数 name age
  22. //无返回值
  23. //方法名是 setName:andAge:
  24. -(void)setName : (NSString *)name andAge :(NSInteger )age ;
  25. //匿名方法 省略掉第二个
  26. -(void)setName:(NSString *)name : (NSInteger)age ;
  27. //getter方法
  28. //读取实例变量的值
  29. -(NSString *)name ;
  30. -(NSInteger) age;
  31. //+开头的方法 类方法 给类调用的方法 通常用类名调用
  32. +(void) textStudent ;
  33. @end

2.类的实现

类实现的关键字:implementation 

  1. //方法的命名 : 第一个单词的首字母小写,以后每一个单词的首字母大写 “驼峰规则”
  2. @implementation Student
  3. -(id)init//初始化对象的方法
  4. {
  5. self = [super init] ; //self 表示调用者 ,指向调用者的对象指针变量
  6. //super 调用父类方法的关键字
  7. if ( self ) {
  8. _name = @"小华" ;
  9. _age = 12 ;
  10. }
  11. return self ;
  12. }
  13. //setter方法访问修改实例变量的值
  14. -(void)setName:(NSString *)name
  15. {
  16. _name = name ;
  17. }
  18. -(void)setAge:(NSUInteger)age
  19. {
  20. _age = age ;
  21. }
  22. -(void)setName:(NSString *)name andAge:(NSInteger)age
  23. {
  24. _name = name ;
  25. _age = age ;
  26. }
  27. //getter方法访问读取实例变量的值
  28. -(NSString *)name
  29. {
  30. return _name ;
  31. }
  32. -(NSInteger)age
  33. {
  34. return _age ;
  35. }
  36. //测试当前类是否可用
  37. +(void)textStudent
  38. {
  39. Student *stu = [[Student alloc]init];
  40. [stu setName:@"小飞" andAge:25];
  41. NSLog(@"name = %@ age = %li",[stu name],[stu age]);
  42. }
  43. @end

创建一个对象,为对象分配内存空间并初始化,调用对象方法和类方法

  1. int main(int argc, const char * argv[]) {
  2. @autoreleasepool {
  3. Student *stu = [[Student alloc] init];
  4. NSLog(@"name = %@ ,age = %li",[stu name],[stu age]) ;
  5. /*
  6. name = 小华 ,age = 12
  7. */
  8. //调用类方法
  9. [Student textStudent];
  10. /*
  11. name = 小飞 age = 25
  12. */
  13. }
  14. return 0;
  15. }


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/43831
推荐阅读
相关标签
  

闽ICP备14008679号