温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Objective -C-2

发布时间:2020-07-20 16:18:49 来源:网络 阅读:440 作者:Im刘亚芳 栏目:开发技术


实例变量的可见度---能不能在外界访问。。

@protected  (受保护的,默认的)---实例变量只能在该类和其子类内操作

@public   =--------实例变量可以在类的外部和内部操作

@private----------实例对象只能在该类内访问


内部是只相应@implementation    和@end  之间    。。。。

为什么不能使用@public

  1. 使用@public关键字,暴露类类内部的细节。

  2. 不符合面向对象语言的三大特性之一--封装

面向对象三大特性:封装,继承,多态;


类中不能出现同名的方法

- (void)setSex:(NSString *)sex;

int  double      flout用作参数不用加*(NSInteger   NSUInteger  CGFloat);


receiver  message]  消息机制,,

继承是单向的,不能相互继承。

继承是具有传递性的 ,,,

子类能继承父类全部的特征和行为,


继承的特点

  • OC中只允许单继承

  • 没有父类单类,称为根类,OC中单根类是NSObject(祖宗)

  • 继承单内容:所有单实例变量和方法

  • 如果子类不满意父类的方法的实现,可以重写父类的方法


self     自身的对象

super   不是父类的对象,而是调用父类的方法,

              是编译 器指令,并非对象,  是给super法消息,可以执行父类中实现的方法;


子类可以重写父类方法,即:子类即有自己的实现,又又父类的实现,如果想从父类调用方法,需要用到super发送消息;


初始化过程

  1. 执行父类中到初始化方法(向上递归到NSObject类中的初始化方法)

  2. 从根类NSObject开始执行初始化方法

  3. 判断父类中初始化是否成功,即self是否存在

  4. 完成对象的初始化设置,返回对象

  5. 初始化子类实例变量


制定初始化

  • 通常把参数最全的初始化方法作为制定初始化方法

  • 制定初始化方法负责向super发送初始化消息

  • 每个类都会有指定的初始化方法

  • 如果每一个类只有一个初始化方法,那它也是指定初始化方法


初始化方法特征

  1. 初始化发方是“-”方法

  2. id或者instancetype类型的返回值

  3. 以init开头

  4. 可以带0到多个参数

  5. 内部实现:先执行super到初始化方法,在初始化自身变量,return self;


便利构造器

  • 便利构造器是“+“方法,返回本类型 的实例,方法名以类名开头

  • 可以有0到多个参数

  • 内部实现:封装类alloc和初始化方法,使用起来更加简洁。


#import

  • 导入头文件,即:导入文件中的内容到当前类

  • #import “ ”导入自定义类,#import < >导入类库中的头文件

  • 功能类似C语言中的#include,但是可以避免头文件被重复导入

  • 容易出现循环导入问题


@class

  • 告诉编译器@class后的字符串作为类名使用,并未导入类的接口内容

  • 有效避免嵌套循环导入


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI