码迷,mamicode.com
首页 > 其他好文 > 详细

黑马程序员——OC学习小结------成员变量以及对应的set、get方法

时间:2015-05-27 13:45:02      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

一、总结

  1.只有利用类名调用类方法的时候,不需要在类名后面写*。其他情况下,类名后面统一加上一个*

 Circle *c1 = [Circle new];
 - (BOOL)isInteractWithOther:(Circle *)other;

  2.返回值是BOOL类型的方法,方法名一般都以is开头

 - (BOOL)isInteractWithOther:(Circle *)other;

  3.想要拥有某个对象,就先创建对象,然后调用set方法将对象传递给内部的成员变量

 // 创建圆心对象
 Point2D *p2 = [Point2D new];
 [p2 setX:12 andY:19];

 // 设置圆心
 [c2 setPoint:p2];
 
 - (void)setPoint:(Point2D *)point
 {
    _point = point;
 }

   4.定义一个类分2个文件:.h声明文件、.m实现文件

     .h : 成员变量、方法的声明

     .m : 方法的实现

   5.如果想使用某一个类,只需要#import类的.h文件即可

二、点语法

  点语法是编译器特性,点语法的本质是方法调用

  self.age = age 等价于  [self  setAge:age]

  self.age 等价于 [self  age]

三、成员变量的作用域

  @public : 在任何地方都能直接访问对象的成员变量

   @private : 只能在当前类的对象方法中直接访问(@implementation中默认是@private)

   @protected : 可以在当前类及其子类的对象方法中直接访问  (@interface中默认就是@protected)

   @package : 只要处在同一个框架中,就能直接访问对象的成员变量

   @interface和@implementation中不能声明同名的成员变量

四、@property与@synthesize

  1、 @synthesize

    用于@implementation中,@synthesize int age= _age;(Xcod4.4之前版本用,现在已经不再使用了)

    自动生成age的setter和getter实现,并且会访问_age这个成员变量,如果没有age,就会自动生成@private类型的age变量

  2、@property

    用于@interface中,可以自动生成某个成员变量的setter和getter声明

  3、Xcod4.4之后,@property 既生成成员变量,又生成setter 和 getter的声明,还生成实现。

 

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

黑马程序员——OC学习小结------成员变量以及对应的set、get方法

标签:

原文地址:http://www.cnblogs.com/zhangxiaoshan/p/4533211.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!