Objective-C中类和对象的介绍

知识点

1.类的介绍

  类是对象的类型,对象是类型的实例。

  实例变量:用来区分同一类的不同对象,是描述对象用的。实例变量可以是各种类型:基本数据类型、指针、复合类型、其他类。

  实例方法:用来操作一个类的对象的函数,实例方法是给外部的访问接口。

  在OC中,使用#import包含头文件。防止头文件被重复包含。

2.类的声明

  @interface className:parentClass<protocol,..>

  {

  •   //实例变量的声明

  }

  method declarations //方法的声明

  @end

3.方法的声明:

  mType(returnType)name:(type)param name1:(type1)param1….

  方法类型 返回值类型 标签名 参数类型 参数与名字

  例子:-(id)initWithX:(int)_x andY:(int)_y;

    • +(int)allNum;

  对象方法:-号开头,只能由对象来调用,对象方法中能访问当前对象的实例变量。

  类方法:+号开头,只能由类来调用,类方法中不能访问实例变量。

4.消息机制

  OC中发送消息的一般格式:[receiver message];

  [实例对象 实例方法];

  [类    类方法];

5.属性声明

  声明property的语法为:@property(参数1,参数2) 类型 名字;

  例子:@property(nonatomic, retain) Circle *circle;

  其中参数主要分为三类:

  读写属性:(readwrite/readonly)

  setter语意:(assign/retain/copy/strong/weak)

  原子性:(atomic/nonatomic)

  各参数意义如下:

  readwrite:产生setter/getter方法;

  readonly:只产生getter方法;

  assign:默认类型,setter方法中实例变量直接赋值,不进行retain操作,主要操作基本数据类型。

  retain:浅拷贝,对对象的内存地址的复制,让目标对象指针和源对象指向同一片内存空间。

  copy:深拷贝,拷贝对象的具体内容到一块新开辟的空间。

  strong:arc中的新属性,类似retain,多个指针指向同一块内存时,只要有一个指向该内存,那么内存就不会被释放。

  weak:arc中的新属性,类似assign,多个指针指向同一块内存时,只要有一个不指向该内存,那么内存就会被释放。

  nonatomic:禁止多线程,提高性能。

  atomic:在使用多线程时,为了防止两个线程相互等待对方导致死锁,用atomic,但是会消耗一定资源。

 

posted @ 2016-08-09 21:31  狼牙战士  阅读(188)  评论(0编辑  收藏  举报