• OC 初识NSString,self关键字,继承,成员变量的可见性,description方法


    OC 初识NSString,self关键字,继承,成员变量的可见性,description方法

    初识 NSString:

    char * string = “旭宝爱吃鱼”; 常量字符串存储在静态区
    NSString * string = “旭宝爱吃鱼”; OC对象存储在堆区

    创建NSString对象:

    1、用字面量来创建

    NSString * string = @"旭宝爱吃鱼";
    

    2、通过类方法创建NSString对象

    NSString * format = [NSString stringWithFormat:@"qq %g qq",1.1];
    注意:stringWithFormat NSLog里面的占位符是通用的
    

    3、new不适用NSString

    NSString * new = [NSString new];
    

    4、+alloc -init创建NSString对象

    NSString * initString = [[NSString alloc] initWithFormat:@"%@ 旭宝爱吃鱼",1];
    

    5、将一个C语言字符串,转化成OC对象

    NSString * charString = [[NSString alloc] initWithUTF8String:"旭宝爱吃鱼"];
    

    self关键字:

    1. self是一个指针,在每一个方法中都有一个self指针
    2. self可以出现在所有的方法中(对象方法和类方法)
    3. self指向调用者。(谁调用它就指向谁)
    4. 可以使用self->成员变量 访问成员变量,可以使用[self 方法名]调用方法

    继承:

    继承:子类拥有父类的所有属性,和方法。
    继承的好处:抽取出了重复的代码,减少代码冗余.
    继承的缺点:耦合性太强.

    继承的使用注意:
    • OC中不允许子类和父类拥有相同名称的成员变量名;
    • OC中的子类可以拥有和父类相同名称的方法,在子类调用时,优先去自己的内部寻找,如果没有则一层一层的往上找;
    • 在子类中重写父类的方法,会覆盖父类的方法。
    super关键字:

    super关键字,在子类中重写方法时,可以让调用者跳过这一层而调用父类中的方法。
    使用场景:子类在重写父类方法时,想要保留父类的一些行为。

    成员变量的可见性:

    • @public 公有成员:成员变量可以在本类,子类,外部函数中访问。
    • @protected 受保护成员:成员变量可以在本类,子类,但不能在外部函数访问。如果成员变量没有任何修饰词,默认是protected
    • @private 私有成员:成员变量可以在本类中访问,不能在子类,和外部函数访问。

    注意:在类实现下定义的所有成员变量的可见度,都是@private

    description方法:

    -description方法的默认实现是返回类名和对象的内存地址,这样的话,使用NSLog输出OC对象,意义就不是很大,因为我们并不关心对象的内存地址,比较关心的是对象内部的一些成变量的值。因此,会经常重写-description方法,覆盖-description方法的默认实现。

    比如:

    - (NSString *)description {
        
        NSString * string = [NSString stringWithFormat:@"name = %@ age = %d",_name,_age];
        return string;
    }
    
  • 相关阅读:
    各种排序算法的时间复杂度
    svn版本管理系统出现的问题解决办法
    算法时间复杂度
    js处理时间戳显示的问题
    cache缓存的BUG
    使用phpstorm提交svn代码版本管理系统遇到的问题解决办法
    20161101.20161115这两周的开发总结
    mac 上安装 redis
    终极 shell zsh
    在 mac 上利用 homebrew 安装软件
  • 原文地址:https://www.cnblogs.com/xubaoaichiyu/p/5478567.html
Copyright © 2020-2023  润新知