黑马程序员_OC分类和构造方法
来源:互联网 发布:peterson算法 编辑:程序博客网 时间:2024/05/16 08:59
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
- 构造方法
1).含义:用来初始化对象的方法,就是构造方法。构造方法是对象方法,以“-”号开头。
2).创建对象的过程:
a.分配存储空间,使用NSObject的alloc方法实现,只是返回了存储空间。如下实例:- Person *p1 = [Person alloc];
b.初始化,使用NSObject的init方法对对象进行初始化。如下实例:- Person *p2 = [p1 init];
c. 也可以直接使用如下代码:d.构造的关键是重写init方法。- Person *p3 = [[Person alloc] init];
- //整个过程其实就是Person *p = [Person new]
3).重写init方法
a. 作用:当创建对象时,返回一个特定初始化的值,而不是默认初始化的0.
b. 代码实例:- - (id)init
- {
- if(self = [super init])
- {
- _age = 10;
- }
- }
4).重写构造方法的目的:为了让对象创建出来,成员变量就有一些固定的值。
5).构造方法的注意点:
a. 先调用父类的构造方法([super init]);
b. 再进行子类内部成员变量的初始化。
6).构造方法的运行原理:
7).自定义构造方法:
a. 作用:创建对象时传入参数对成员变量进行赋值;
b. 方法声明:@property int age;
c. 方法实现:d. 自定义结构规范:- -(id)intWithAge:(int)age
- {
- if(self = [super init])
- {
- _age = 10;
- }
- }
1>一定是对象方法,一定以"-"开头;
2>返回值一般是id类型;
3>方法名一般以initWith开头;
4>父类的属性交给父类的方法去处理,子类方法处理子类自己的属性。
分类(Category)
1).使用场景:给某一个类扩充一些方法(不修改原来类的代码)。2).分类方法:
a. 声明:@interface 类名(分类名称) @end
b. 实现:@implementation类名(分类名称) @end
3).分类的作用:在不改变原来内容的基础上,可以为类增加一些方法。4).使用注意:
1>只能增加方法,不能增加成员变量;
2>分类实现总可以访问原来类中声明的成员变量;
3>分类可以重新实现原来类中得方法,但是会覆盖掉原来的方法,会导致原来的方法失效;
4>分类的优先级最高(最后参与编译的文件优先级最高),其次是原来的类,再次是父类。5).好处:分模块开发;给系统自带的类添加分类。
0 0
- 黑马程序员_OC分类和构造方法
- 黑马程序员_OC构造方法
- 黑马程序员_OC构造方法和ID类型学习学习
- 黑马程序员学习笔记14_OC之构造方法
- 黑马程序员_OC点语法 id 构造方法复习
- 黑马程序员_OC点语法 id 构造方法复习
- 黑马程序员_OC中的set方法和get方法
- 黑马程序员_OC语言的分类
- 黑马程序员_OC中的分类(category)
- 黑马程序员_OC基础05_分类
- 黑马程序员_OC核心语法之分类
- 黑马程序员_OC对象的构造
- 黑马程序员——构造方法和分类
- 黑马程序员_OC语言之类方法和关键字self
- 黑马程序员学习笔记_OC之类方法
- 黑马程序员_OC对象的方法
- 黑马程序员_oc特有语法一:分类Category和类扩展
- 黑马程序员_OC之类和对象
- Mysql启动中 InnoDB: Error: log file ./ib_logfile0 is of different size 0
- Step into Scala - 19 - 正则表达式
- B-树和B+树的应用:数据搜索和数据库索引
- 欢迎使用CSDN-markdown编辑器
- 苹果Xcode 证书生成、设置、应用完整图文教程
- 黑马程序员_OC分类和构造方法
- Boundedbuffer
- 文章标题
- android app如何从数据库中获取需要的数据?
- 优化斗地主
- textview防抖动 最后一行消失
- hdu3635 Dragon Balls
- Step into Redis- 03 - 事务
- 记录学习Tomcat JSDI数据源技术的问题