黑马程序员技术交流社区

标题: talk is cheap, show me the code!--类和对象 [打印本页]

作者: 崔石炫    时间: 2014-10-21 23:59
标题: talk is cheap, show me the code!--类和对象
  1. /*
  2. 类和对象:
  3. * 类的声明和实现
  4.     @interface 类名 : 父类名
  5.     {
  6.         //声明的属性列表
  7.     }
  8.     //声明的方法列表
  9.     @end

  10.     @implementation 类名
  11.     //实现类中声明的方法
  12.     @end

  13. * 对象的创建
  14.     类名 *pointer = [类名 new]; //返回一个根据类名创建好的可用的对象,并用指针pointer指向这个对象
  15. * 对象的行为
  16.     //给对象发送消息,对象就会执行相应的行为,实际就是调用对象的方法
  17.     [对象名 行为名];
  18. * 方法和成员变量
  19.     类的声明中,大括号{}中声明成员变量,即属性
  20.     大括号{}外声明方法
  21.     类的实现负责实现类的声明中的方法
  22. * 匿名对象
  23.     创建一个对象,但是不用指针指向它,这样的对象称为匿名对象
  24.     匿名对象只能在创建时的那条语句中使用,之后就不能再用,因为没有指针指向它,想用也找不到那个对象了,不知道放在哪里。
  25. */


  26. #import <Foundation/Foundation.h>

  27. /*
  28. 类的声明和实现
  29. */
  30. @interface Person : NSObject //声明一个名叫Person的类
  31. {
  32.     @public //@public关键字的作用:让其后的_age属性可以在类外部直接访问
  33.     int _age;
  34. }
  35. - (void)setAge:(int)age; //声明一个名为setAge:(冒号:也是方法名的一部分)的对象方法,接收一个int类型的参数,返回值为void
  36. - (void)printAge; //声明一个名为printAge的对象方法,不接收参数,返回值为void
  37. @end

  38. @implementation Person //实现名叫Person的类

  39. - (void)setAge:(int)age //实现对象方法
  40. {
  41.     _age = age;
  42. }

  43. - (void)printAge //实现对象方法
  44. {
  45.     NSLog(@"_age = %d" , _age);
  46. }
  47. @end



  48. int main(int argc, const char * argv[])
  49. {
  50.     Person *p = [Person new]; //创建一个新的Person对象,并让指针p指向新创建的对象
  51.     [p setAge:10]; //给p指向的对象发送setAge:消息,将_age属性的值设置为10
  52.     [p printAge]; //给p指向的对象发送printAge消息,将_age属性的值打印出来
  53.    
  54.     [[Person new] printAge]; //创建一个匿名对象(没有指针指向它),同时向该对象发送printAge消息,然后就无法使用这个匿名对象,因为没有指针指向它
  55.    
  56.     return 0;
  57. }
复制代码







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2