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;
}
posted @ 2016-05-10 17:20  旭宝爱吃鱼  阅读(573)  评论(0编辑  收藏  举报