A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xiaoguang 中级黑马   /  2015-8-18 23:34  /  786 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


OC方法重载:
        没有!!!!!
    重载:在一个类中定义同名的方法,方法 的参数的类型和个数可以不同!


OC中的static
        static修饰局部变量:延长局部变量的生命周期
        static修饰全局变量:当前变量只能在当前文件中使用
        static修饰函数:函数只能在当前文件使用
        static不能修饰方法;
        static不能修饰实例变量;

OC中的self和super
        OC的self就相当于JAVA中的this指针
    super代表父类;
    self应用场景:
        用在类方法中;
                在类方法中使用其指代的是当前类;
                Person *p=[Person new];
                [p class];返回的是类的地址!!

        用在对象方法中;
                self指代的是调用当前方法的对象(存在于栈区)

        self修饰变量(在对象方法,类方法不能访问成员变量)
                set方法中     如果定义实例变量和局部变量同名则:
                //    函数内部可以定义和全局变量同名的变量
                //    如果同名,局部变量会暂时屏蔽全局变量的作用域;
                解决方法:  self->实例变量=局部变量名;  即可!!


继承:
        1).导入继承的那个类的头文件
        2).@interface 类名:父类名
                基类的私有属性能被继承,但是不能被使用;
                OC中的继承是单继承,也就是说一个类只能一个父类,不能继承多个父类
                继承的合理性;

        父类的方法,在子类中重新实现一下,这种方法就叫做方法的重写;

继承类的调用顺序;
        1.>在自己类中找
        2.>如果没有,去父类中找
        3.>如果父类中没有,就去父类的父类中找
        4.>如果父类的父类没有,就往上找,直到找到基类(NSobject)
        5.>如果NSobject都没有就报错了

实例变量修饰符
        @public  (公开的):作用于所有的类
        @protected 受保护的:作用于当前类和子类
        @private  私有的:  当前类使用
        @package(框架级别的)   作用于框架级别的

实例变量作用域使用注意事项
        1.>在interface中,如果没有添加修饰符,默认是protected   受保护的类



私有变量
        私有属性不能被继承,也不能被访问;        
        在.m中声明,可以被当前类访问调用

私有方法:
        在.h中没有声明,在.m中实现了,这就是私有方法
        不能直接在main中用对象进行访问;
        私有方法只能在当前类中调用访问;
        在私有方法访问必须用self 方法.

description方法

当我们以%@的格式,打印对象的时候,方法调用了description方法;
对象中如果没有重写父类的descroption方法,则调用父类的;
千万不要在description方法中同事使用%@和self;同事使用的话,代表要调用self的des方法,因此会导致程序陷入死循环.循环调用description方法;

2 个回复

倒序浏览
太棒了,
回复 使用道具 举报
赞!!!!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马