非凡程序员:闵莉萍

一.  面向对象的三大特性  +  复合

  1. 封装

. 三种方法:

(1)有接口,有实现:自己可以用,外部可以用;

(2)有接口,没实现:报警告;

(3)没接口,有实现:自己类可用,其他类和主文件都不能用,不暴露接口,自己类用self调用。 

@public   属性 公开:用  ->  赋值

、方法的封装 :不暴露接口名;这是只能在自己类

中用   [ self 方法名]; 这种方式调用

@protected     这都是对属性的set、get 方法进行限制

 @private   子类中有父类权限,但不可在设置重写父类的set、get 方法

 @package

2.继承

 特点:可重性强、维护性强、减少代码量、去冗余。子类中重写父类方法时,不写接口。

 .只有有继承的时候才用多态.

.继承:子类继承父类的属性和有接口的方法  

    子类有独有的属性方法(父类、兄弟类不受影响)

        子类应用并重写父类方法用   [super 方法名]; 

子类可以指向父类,不能调用子类独有的属性和方法,只能调用父类方法。

 指向子类对象的父类指针,方法调度时候先在子类找,子类没有找父类。 

3.多态(多种形态):基于继承(子类、父类)、父类指针指向子类。

核心:父类指针指向子类

父类指针指向子类 能调用重写的方法,但是不能调用子类特有的方法。

4. 实例化对象(对于 Person 类)

    调用方法  [Person new]   、  [[Person alloc]init] 。

    new  相当于  alloc+init   、  alloc:划分一块内存

    init: 生成对象

    实例化方法:

     Person * jack = [Person alloc];//alloc只是划分一块内

存,没有实际生成相关对象

     Person * ximi = [[Person alloc] init];//init后才实际生成相应对象

5.类和对象的比较

                         类            对象   

            符号         +             —

          调用对象       类            对象

          成员变量      不可用         可用

6.self(当前自己(类/对象))、super(父(类/对象))

   两个词都是oc关键字,都属于指针。

   self:当方法不暴露接口,在自己类内部调用

   super(超父类)继承重写方法(同时使用父类)

7.重写方法:在父类的基础上实现自己,用super调用原有的

方法。

重写方法的子类中方法名与父类中相同,有参数时,参数名可以不同。

8.构造函数:

   实例化方法的重写

 -(id)init{

       self = [super init];//super调用原本的init方法返回实例化的对

象self,self就是Person类的对象

       [self  setAge:1];

       return self;


    9.复合  不是面向对象的特性之一,只是类与类之间的一种形式,

       将多个组件组合在一起,配合使用从而得出一个新的组件。

  二.   数据类型

NSRange 结构体的一种,{位置,长度}

一.字符串类型

1.不可变字符串(NSString)

   对象输出用  %@  做通配符。

(1)定义不可变字符串方法:

       ※   a.  NSString * string = @“hello”;

             b.  initWithFormat   是生成对象同时存放数据的方法,如下

NSString * string = [[ NSString alloc ] initWithFormat : @“ooo%i”,234 ];

※(2) 拼接字符串法、类方法、返回新的字符串:(  stringWithFormat  )                                                

            NSString * stringII = [ NSString stringWithFormat:@"ooo%i",123 ];

(3)length   是字符串的属性,可以通过方法length获得某字符串长

度 [string length] 或者直接用  点  获取属性 string.length。

length的返回值为NSUIntger(无符号长整型)通配符使用  %lu  。

(4)所有字符,除图标是两个长度外都是一个长度。

2.可变字符串  (NSMuatbleString)

(1)定义可变字符串的方法

   ※   a.  静态定义一个可变字符串:

 NSMutableString  *  mutStr  =  [  NSMutableString  string  ];

    ※  b.  定义一个字符串并且分配一个空间

   (分配空间:initWithCapacity:   )     

NSMutableString * mutStr = [ [ NSMutableString alloc ]initWithCapacity:10 ] ; 

      c.  定义一个字符串并且分配一个空间的另一种方法

NSMutableString * mutStr= [ NSMutableString stringWithCapacity:10 ];

     d.  定义一个可变字符串并赋初值或者 将一个不可变字符串格式化为

一个可变的(三种至少必会一种)

NSMutableString * mutStr= [[ NSMutableString alloc ]initWithFormat:@“hl%@“,@“wo"];

NSMutableString *mutStr = [ NSMutableString stringWithFormat:@"hello" ];

NSMutableString * mutstr = [ NSMutableString stringWithString:@"hh" ];

(2)  字符串的增加或减少

    a. 对于不可变的字符串是不能自身增加(减少),只能增加成一个新的字符串。

    b. 从指定下标裁剪到结束 (substringFromIndex: )

NSString * subStr = [ string substringFromIndex:1 ];

    c. 从下标为0处裁剪到某位置  (substringWithRange:NSMakeRange(a, b))

NSString * subRange = [ string substringWithRange:NSMakeRange(2, 2) ];

    d.  在原本字符串后拼接格式化的字符串,返回新字符串(原字符串不影响)(stringByAppendingFormat:)

NSString * appStr = [ string stringByAppendingFormat:@" world%@",@"你好" ];

       e、利用在字符串后添加字符串方法得到新字符串  (stringByAPPendingString:)

NSString * append = [string  stringByAppendingString:@"hjk" ];

      f、在字符串后追加字符串(appendString)

[ muStr  appendString:@"你好" ];

       g、在字符串后追加被格式化为字符串的自定义内容(appendFormat:  )

[ muStr  appendFormat:@"hi%i",123 ];

       h、在指定位置追加内容    (insertString: 字符  atIndex:位置数 )

[ muStr insertString:@"haha" atIndex:2 ];

           减少 

      i、在指定位置删除内容( deleteCharactersInRange:NSMakeRange(0, 1) )

[ muStr   deleteCharactersInRange:NSMakeRange(0, 1) ];

     ※  j、指定内容删除  i:查找某字符串的位置                            

                                     NSRange range = [ muStringII rangeOfString:@"hi" ];     

                                  ii.删除找到的指定位置

                                    [ muStr   deleteCharactersInRange: range  ];

(3)修改字符串,将指定位置替换为指定字符串

       a. [ muStringII replaceCharactersInRange:NSMakeRange(0,2) withString:@"h" ];

           (即字符串 0 到 2 之间的位置换成 h(包括 0 位置) )

(4) NSInteger 为 :   OC的长整型 

(5)将数字内容的字符串转化类型为相应数值

     (intValue  \  integerValue  \  floatValue    \ doubleValue  \  boolValue)

例:   NSString * numStr;

       NSInteger number = [ numStr   integerValue ];

 //将字符型(numStr)转化为整形(number)

(6)字母大小写的改写

       a、全部改为大写  (uppercaseString)

NSString * upperStr = [ string uppercaseString ];

       b、全部改为小写  (lowercaseString)

NSString * lowerStr = [ upperStr lowercaseString ];  

      c、 首字母大写 ( capitalizedString )

NSString * capStr = [ string capitalizedString ];

  

         


转载于:https://my.oschina.net/u/2615753/blog/608621


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部