• ObjectiveC面向对象编程继承


    1、Object-C只允许单继承,要实现类似多继承的功能可以通过协议(protocol)实现

    2、支持多态

    3、Object语言本身最大特点--消息传递

      在C++里的类与方法的关系非常严格清楚,一个方法必定属于一个类,并且于编译期(compile time)就已经紧密绑在一起,不可能调用一个不存在类里的方法。

      Object-C,类与消息的关系较为松散,所有方法都被视为消息的回应,而调用方法则视为对类发送消息。所有消息处理知道运行期(runtime)才会动态决定。并交由类自行决定如何处理收到的消息。

    4、一个类不保证一定会回应收到的消息,如果类收到了一个无法处理的消息,程序并不会出错或者当掉。

    5、属性总是公共的,其目的为提供外部类访问(也可能为只读)类的内部变量的方法。

      属性可以被声明为“readonly”,只读的,也可以提供存储方法包括"assign","copy"或者“retain”(简单的赋值、复制或增加唉1引用计数)

      默认的属性是原子的,即在访问时会加锁以避免多线程同时访问同一对象,也可以将属性声明为"nonatomic"(非原子的),避免产生锁。

    @interface Person : NSObject{

      @public NSString *name;

      @privae int age;

    }

    @property(copy) NSString *name;

    @property(readonly) int age;

    -(id)initWithAge:(int)age;

    @end

      访问属性:

      属性的访问方法由@synthesize关键字来实现,它由属性的声明自动的产生一对访问方法。另外,也可以选择使用@dynamic关键字表明访问方法由程序员手工提供。

    Person * aPerson =[[Person alloc]initWithAge: 53];

    aPerson.name =@"steve";

  • 相关阅读:
    【转】Web Service单元测试工具实例介绍之SoapUI
    【节选】刘积仁:怎样才是真正的创业者
    xadmin引入django-import-export导入功能
    django使用xadmin
    Mac Docker安装Redis4.0
    JMeter+Maven+CSV数据驱动
    Selenium+TestNG+CSV数据驱动
    JMeter压测时报“内存不足”故障的9个简单解决方案
    requests+unittest+ddt+xlrd+pymysql+BeautifulReport数据驱动
    Mac Docker安装MySQL5.7
  • 原文地址:https://www.cnblogs.com/kenwong/p/3025329.html
Copyright © 2020-2023  润新知