• Objective C 基础教程


    复合

    使用复合可组合多个对象,使之人工协作。

    会同时使用继和复合来创建自己的类。

    编程中的复合就好像音乐中的作曲一样;将多个组件组合在一起配合使用。

    在Objective-C中,复合是通过包含作为实例变量的对象指针实现的。
    @interface Unicycle : NSObject

    {

      Pedal *pedal;

      Tire *tire;

    }


    @end

    pedal 和tire通过复合的方式组成了Unicycle(独轮车)

    Car 程序

    如何搭建汽车模型。

    CarParts 包含在主程序mainCarParts.m中。

    #import <Foundation/Foundation.h>

    @interface Tire : NSObject

    @end

    @implementation Tire

    - (NSString *) description

    {

      return (@"I am a tire. Ilast a while");

    }

    @end

    Tire类中唯一的方法是description,没有在接口中声。

    Cocoa神奇的帮助

    自定义NSLog()

    通过NSLog()可以使用%@格式符来输出对象.

    %@会询问参数列表中相应的对象以得到这个对象的描述。

    从技术上讲,就是NSLog()给这个对象发送描述消息,然后对象的description方法生成一个NSString并返回。

    在类中添加description方法就可以自定义NSLog()如何输出对象

    在自定义的description方法中,你可以选择返回一个字面值NSString.如@"I am a cheese Danish Object"
    ,也可以构造一个描述该对象所有此类消息的字符串。

    在Cocoa中,NSArray类管理的是对象集合。

    它的description

     方法调度

    当代码发送消息时,Objetive C的方法调度程序将在当前类中搜索相应的方法。

    如果高度程序无法在接收消息的对象类中找到相应的方法,它就在该对象的超类中进行[。

    [shape setFillColor:kRedColor] Objective -c 方法调度程序将查找接收该消息的对象Circle类有一个指向其它代码的指针,

    消息

    实例变量

    创建一个新类时,其对象首先从自身的超过类中继承实例变量,然后添加它们自己的实例变量。

    @interface RoundedRectagnle : shape

    {

      int radius;

    }

    @end

    内存布局

    继承在子类和超类之间建立了一种"isa"关系, 所以NSobject的实例变量称为isa

    使用更具体种类的对象,称为多态

    每个方法调用都获得一个名为self的隐藏参数,它是一个指向接收消息的对象的指针方法使用self参数来查找它们要使用的实例变量 ,

  • 相关阅读:
    BZOJ3875 AHOI2014/JSOI2014骑士游戏(动态规划)
    Contest 9
    Contest 8
    Codeforces Round#514 Div.2 翻车记
    Contest 7
    安徽师大附中%你赛day6 T3 Hamsters [POI2010]CHO-Hamsters 解题报告
    2018.8 安徽师大附中培训游记
    安徽师大附中%你赛day5 T3 树上行走 解题报告
    安徽师大附中%你赛day4T2 演讲解题报告
    安徽师大附中%你赛day4T1 金字塔 解题报告
  • 原文地址:https://www.cnblogs.com/yushunwu/p/2627597.html
Copyright © 2020-2023  润新知