1. //
  2. // main.m
  3. // 练习
  4.  
  5. #import <Foundation/Foundation.h>
  6.  
  7. @interface Car : NSObject
  8. {
  9. @public
  10. int wheels;
  11. }
  12. // 方法的声明必须写在类的声明中
  13. - (void)run;
  14. - (void)test;
  15. @end
  16. @implementation Car
  17. - (void)test
  18. {
  19. NSLog(@"测试一下车子:%i", wheels);
  20. }
  21. // 方法不能使用函数来实现, 方法是方法, 函数是函数
  22. // 方法属于一个类, 函数属于一个文件
  23. //void run()
  24. - (void)run
  25. {
  26. NSLog(@"%i个轮子的车跑起来了", wheels); // 不能在一个函数中访问类的成员变量
  27. }
  28.  
  29. // 方法的实现只能写在@implementation和@end之间
  30. - (void)haha
  31. {
  32. NSLog(@"调用了haha");
  33. }
  34. @end
  35.  
  36. int main()
  37. {
  38. Car *c = [Car new];
  39. [c run];
  40. // test(); // 方法不能当做函数来调用 , 对象方法只能用对象调用
  41. [c test];
  42. // haha();
  43. [c haha];
  44.  
  45. return ;
  46. }
  47.  
  48. @interface Test : NSObject
  49.  
  50. - (int)addNum1:(int)num1 andNum2:(int)num2; // 每个参数数据类型前面都必须写上:
  51.  
  52. - (double)pi; // 没有参数就不要写:
  53.  
  54. - (void)test; // 在OC方法中()就一个作用, 用来扩住数据类型
  55. @end
  56.  
  57. @implementation Test
  58.  
  59. - (int)addNum1:(int)num1 andNum2:(int)num2
  60. {
  61. return num1 + num2;
  62. }
  63.  
  64. - (double)pi
  65. {
  66. return 3.14;
  67. }
  68.  
  69. - (void)test
  70. {
  71.  
  72. }
  73. @end
  74.  
  75. int main()
  76. {
  77. return ;
  78. }
  79.  
  80. @interface Person : NSObject
  81. {
  82. @public
  83. int age;
  84. double height; // 成员变量不能在定义的时候进行初始化
  85. }
  86. - (void)study; // 方法只能写在{}外面
  87.  
  88. // 缺少@end
  89. @end
  90.  
  91. @implementation Person
  92. - (void)study
  93. {
  94. NSLog(@"年龄为%d的人在学习", age);
  95. }
  96. @end
  97.  
  98. int main()
  99. {
  100. // 地址只能使用指针保存
  101. Person *p = [Person new];
  102. p->age = ;
  103. p->height = 1.78f;
  104. [p study];
  105. return ;
  106. }
  1. //
  2. // main.m
  3. // 练习2
  4. //
  5. // Created by xiaomage on 15/6/18.
  6. // Copyright (c) 2015年 xiaomage. All rights reserved.
  7. //
  8.  
  9. #import <Foundation/Foundation.h>
  10. @interface Person : NSObject
  11. {
  12. @public
  13. int age;
  14. double height;
  15. }
  16. - (void)print;
  17. @end
  18.  
  19. // int newAge = 10, double newHeight = 1.5
  20. void test1(int newAge, double newHeight);
  21. void test2(Person *newP);
  22. void test3(Person *newP);
  23. void test4(Person *newP);
  24.  
  25. int main()
  26. {
  27. Person *p = [Person new];
  28. p->age = ;
  29. p->height = 1.5f;
  30.  
  31. test1(p->age, p->height); // 10, 1.5
  32. [p print]; // 10, 1.5
  33.  
  34. test2(p); // 指针, 地址
  35. [p print]; // 20, 1.7
  36.  
  37. test3(p); // 指针, 地址
  38. [p print]; // 20, 1.7
  39.  
  40. test4(p); // 指针, 地址
  41. [p print]; // 60, 1.9
  42.  
  43. return ;
  44. }
  45. @implementation Person
  46. - (void)print
  47. {
  48. NSLog(@"年龄=%d,身高=%f", age, height); // 10, 1.5
  49. }
  50. @end
  51.  
  52. void test1(int newAge, double newHeight)
  53. {
  54. newAge = ;
  55. newHeight = 1.6;
  56. }
  57.  
  58. // Person *newP = p;
  59. void test2(Person *newP)
  60. {
  61. newP->age = ;
  62. newP->height = 1.7;
  63. }
  64.  
  65. // Person *newP = p;
  66. void test3(Person *newP)
  67. {
  68. Person *p2 = [Person new];
  69. p2->age = ;
  70. p2->height = 1.8;
  71. newP = p2;
  72.  
  73. newP->age = ;
  74. }
  75.  
  76. void test4(Person *newP)
  77. {
  78. Person *p2 = newP;
  79. p2->age = ;
  80. p2->height = 1.9;
  81. newP->age = ;
  82. }

oc10--练习的更多相关文章

  1. oc总结

    OC10天大纲 一.类和对象 1.什么是类? 同一种对象的抽象就是类. 2.什么是对象? 世界上的任何事物都可以称为对象,每个对象都有他自己的属性和行为. 3.如何创建一个类(请把一个.h和一个.m粘 ...

  2. oc界面开发整理

    oc界面开发整理 ViewController.h from test82 #import <UIKit/UIKit.h> @interface ViewController : UIVi ...

随机推荐

  1. HTML基础练习

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  2. Java中的常用类有哪些

    1NumberFormat 2DecimalFormat 3BigDecimal 4Math 5Random 6DateFormat 7SimpleDateFormat 8Calendar 9Date ...

  3. 浅谈Websocket、Ajax轮询和长轮询(long polling)

    浅谈Websocket.Ajax轮询和长轮询(long p0ll) 最近看到了一些介绍Websocket的文章,觉得挺有用,所以在这里将自己的对其三者的理解记录一下. 1.什么是Websocket W ...

  4. 关于ListView中item与子控件抢夺焦点的解决方法

    1.在开发中,listview可以说是我们使用最频繁的控件之一了,但是关于listview的各种问题也是很多.当我们使用自定义布局的Listview的时候,如果在item的布局文件里面存在Button ...

  5. Android媒体解码MediaCodec MediaExtractor学习

    Android提供了MediaPlayer播放器播放媒体文件,其实MediaPlyer只是对Android Media包下的MediaCodec和MediaExtractor进行了包装,方便使用.但是 ...

  6. SQL Server2008优化之SET STATISTICS开关

    一.准备工作 缓存对于某个查询的性能影响十分之大,所以优化之前要清空缓存. 清除Buffer Pool时面的所有缓存 DBCC DROPCLEANBUFFERS清除Buffer Pool里的所有缓存的 ...

  7. 推荐系统:MovivLens20M数据集解析

    MovieLens 是历史最悠久的推荐系统.它由美国 Minnesota 大学计算机科学与工程学院的 GroupLens 项目组创办,是一个非商业性质的.以研究为目的的实验性站点.MovieLens ...

  8. 图像局部显著性—点特征(FREAK)

    参考文章:Freak特征提取算法  圆形区域分割 一.Brisk特征的计算过程(参考对比): 1.建立尺度空间:产生8层Octive层. 2.特征点检测:对这8张图进行FAST9-16角点检测,得到具 ...

  9. SLAM: Orb_SLAM中的ORB特征

    原文链接:什么是ORB 关于Orb特征的获取:参考 最新版的OpenCV中新增加的ORB特征的使用 ORB是是ORiented Brief 的简称,对Brief的特定性质进行了改进. ORB的描述在下 ...

  10. 时序分析:KMP算法用于序列识别

    考研基础资料之一的<算法与数据结构>,KMP算法作为串匹配的基本算法,为必考题目之一.对于算法入门来说,也是复杂度稍高的一个基本算法. KMP算法作为串匹配的非暴力算法,是为了减少回溯而设 ...