本帖最后由 仰望星空的猪 于 2015-11-27 10:44 编辑
1 NSString 类 处理字符串的类。 1) 创建常量字符串 NSString *str =@”abc“; //str 为指针变量 ”abc“为字符串常量 NSString *str=[NSString new];//使用类new方法创建字符串对象 str=@“abc“; NSString *str=[NSString stringWithFormat:@”xxx%d“,i];//使用类方法格式化创建字符串。 NSString *str1=[[NSString alloc] initWithString:str]; // 先分配空间之后用str的值初始化 之后把地址返回给str1. 2)NSString 字符串长度计算 类方法 length [str length]; //返回值类型为NSUInteger 无符号整形 输出用 ld OC中 英文和中文都是一个字符 占一个字节。 C 中 中文占3个字节。 2 多文件开发 把声明和实现分开把声明写在.h中 实现在 .m中 在.h中添加import .m 在主函数中添加头文件。 还可以把 类 按类别放到不同的文件夹中。 3 类方法(+) 优点:节省内存 提高效率 作为工具方法 对象方法使用的时候必须创建对象,使用对象调用。 类方法使用的时候不需要创建实例对象,不依赖任何对象方法和成员变量。 方法定义和对象方法相似只是前面是 + 号。 调用和对象方法一样。
注意 1) 类方法可以和对象方法同名,调用者不一样。 2) 类方法可以继承。 3) 声明和实现同对象方法类似。 4) 类方法只能通过类调用。直接到代码区找类方法。
4 对象方法和类方法区别 对象方法 1)对象方法可以在方法中创建对象,使用新创建的对象调用对象方法 2)对象方法可以通过 self 调用该类的对象方法。 3)对象作为方法的参数传递过来,可以使用传递过来的对象调用对象方法 类方法 1)类方法可以调用其它的类方法 2)可以使用self 调用其他类方法 3) 类方法中可以调用对象方法 对象作为参数传递或者在类方法中创建对象。 4)类方法不可以调用自身。会成死循环。 5 匿名类 在方法需要使用调用类方法的时候生成并调用。 [[Personnew] goHome :[Car new]];
6 封装 作用:隐藏类的实现隐藏数据 掌握对实例变量的管理权。 原理:实例变量默认为只可被当前类对象访问。 实现步骤 1) 设置实例变量的setter和getter方法。类似java的set和get。 使用set方法对成员变量赋值,使用get方法获得成员变量的值。 set方法命名规范 a 必须以set开头 b set后面跟成员变量的名称首字母大写。(去掉下划线)。 c 返回值为void。 d 一定要接收一个参数,参数类型和成员变量的类型一致。 e 形参名不能和成员变量名一样。一般去掉下划线的成员变量名。 f set方法是一个对象方法。 g 实现中一定要给实例变量赋值。
get方法的命名规范 a一定要有返回值,返回值类型与成员变量的类型一致 b方法名和成员变量名一样。(一般为去掉下划线的成员变量) c 没有参数。 d 是对象方法 e 实现中一定返回实例变量值。 7 对象和对象关系 1) 组合模式(部分-整体)相同基类的对象组合到树形结构中。 2) 依赖关系 A对象作为B对象的局部变量或者方法的形参 ,B 依赖于A .A和B是依赖关系 耦合度:修改一个对象时,对另一个对象的影响程度。 低耦合:修改一个对象时,对另一个对象的影响小 高内聚:一个对象仅仅做自己相关的事情。 3) 关联关系 一个对象拥有另一个对象
8 方法的重载 同名方法不同参数个数和类型。 OC中没有方法的重载 9 OC中static关键字。 static不能修饰实例变量。 可以在.m文件中作为普通变量使用。只能在本文件中使用。 10 self和super self相当于java的this指针 表示当前对象。
self应用 谁调用当前方法就指代谁 1) 在对象方法中使用。指代调用当前对象方法的对象。 2) 在类方法中指代当前类。[对象 class]返回当前类(对象) 3) self修饰变量 用以区分实例变量和普通变量 super 调用父类方法。 11 类的继承和派生 继承就是子类拥有父类的方法和属性。 继承的实现 1) 导入父类的头文件 2) 声明子类的时候继承父类 基类和派生类的关系 派生类可以继承父类(基类)的方法和属性还可以拥有自己的属性和方法。 注意 1)基类的私有属性不能被继承。 2)OC中是单继承,一个子类只能继承一个父类。 3)继承的合理性。可以拥有父子关系。 方法的重写 子类重新实现父类的方法。不需要声明,已经继承。
继承的注意事项 1) 子类不能定义父类同名变量 2) 单一继承 3) 可以多层继承。 12 实例变量修饰符合作用域 修饰符 @public 公有的 任意程序 @protected 受保护的 同一类或者派生类 子类可以使用 @private 私有的 同一类中 子类可以继承,不能访问和使用 修饰符的作用域 声明时(.h):从修饰符出现的地方开始到遇到下一个修饰符或结束。默认为protected。 实现时(.m):声明的变量都是私有的 不能继承 不能访问。 私有方法 .h中没有声明,但是在.m中实现的方法。子类不能继承,不能实现。子类可以通过共有方法调用私有方法。 13 description方法 NSLog(@”%@”,对象);//打印对象的内容 实际上调用NSObject类的description方法 打印对象信息。 重写description方法 - (NSString *) description{ NSString *str=@“”;// 可将打印的信息以字符串的形式赋值给str return str ; }
|