zoukankan      html  css  js  c++  java
  • 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,但是会消耗一定资源。

  • 相关阅读:
    笨方法学python中执行argv提示ValueError: not enough values to unpack (expected 4, got 1)
    VMware workstation安装
    Redis bigkey分析
    MySQL drop table 影响及过程
    MySQL 大表硬连接删除
    ES elasticsearch 各种查询
    ES elasticsearch 各种聚合
    ES elasticsearch 聚合统计
    ES elasticsearch 实现 count单字段,分组取前多少位,以地理位置中心进行统计
    MySQL行溢出、varchar最多能存多少字符
  • 原文地址:https://www.cnblogs.com/s-y-j/p/5754680.html
Copyright © 2011-2022 走看看