黑马程序员技术交流社区

标题: OC笔记 [打印本页]

作者: xiaoguang    时间: 2015-8-18 23:35
标题: OC笔记

NSString类的介绍和用法
        创建常量字符串:(是OC中字符串处理类)
               1).> NSString *astring=@"this is a String!";
                2).>nsstring *s1=[nsstring new];
                        s1=@"this is a string";
                3).>nsstring *imagName=[nsstring stringWithFormat :s1]
                4).>nsstring  *s2=[[nsstring alloc] initWithString :s1];


计算字符串长度:
        nsstring *s1=@"tyg";
        [s1 length];    //长度为三
OC中中文相当于1个字符;
UTF-8编码中汉字占三个字符;

OC多文件开发:
        在开发中实现的功能一般会比较复杂,所以会将类分成声明和实现
        在.h中写变量和方法的声明
        在.m中写行为的实现

        同时.h和.m文件必须同名
        头文件引入用#import " 头文件名 "

类方法:
类方法可以从父类继承而来,子类可以重写类方法
类方法由类名调用,实例方法由对象调用
在类方法中使用self,self指代的是调用者类
在类的方法中不能是同类的成员变量
类方法和对象方法之间不能使用self


self的区分
        self在不同的方法里面代表的不一样
        在对象方法里代表的是一个对象
        在类方法里代表的是一个类
注意:
        类方法里面可以调用类方法,对象方法,对象方法里面也可以调用类方法,对象方法,淡雅注意self代表的是什么,以及不能用self调用当前方法,否则会出现死循环!

匿名类的概念
        1.使用匿名类访问实例变量(只能访问一次)
                以后再次访问,实际上访问新的空间了
        2.使用匿名的类,可以调用方法;

        [[car alloc] init ]等价于  [car new];
        使用alloc  init的方式调用  stop方法      [[[car alloc] init ]  stop];


封装
        封装的步骤:
            设置实例变量方法(setter)和访问实例变量(getter)的方法;
        setter方法(设置器)
            作用:为外界提供一个设置成员变量值的方法

        命名规范:
            方法名必须以set开头
            set后面跟上成员变量的名称;首字母大写
            返回值是VOID类型
            一定要接收一个参数,而且参数类型需要和成员变量的类型一致;
            形参名一般是去掉下划线的成员实例变量名;
            形参明不能和实例变量名同名;
            set方法实现中,一定要用形参给实例变量赋值;
        getter方法:(访问器)
            作用:为调用者返回对象内部的成员变量
        书写规范:
                get方法一定是一个对象方法;
                一定有返回值;返回值累习惯和实例变量 的类型一致
                get方法名,是去掉下划线的实例变量名
                get方法一定没有参数
                get方法的实现中,一定是返回值实例变量值

组合模式:把具有相同基类的对象组合倒树结构中,以表示"部分-整体"的层次结构,使得用户对单个对象和组合对象的使用具有一致性;
依赖关系:A对象作为B对象 的局部变量或者是方法形参的,B依赖与A,这时候我们称A与B之间存在一种依赖关系;
关联关系:当一个对象拥有另一个对象的时候,当B对象为A对象的成员变量的时候,B对象与A对爱选哪个之间存在一种关联关系;
                关联关系是面向睇相中最常用的一种关系;
@interface Person:NSObject{
            Dog *dog;             //注:存在一个Dog类;
}






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2