首页
Web开发
Windows程序
编程语言
数据库
移动开发
系统相关
微信
其他好文
会员
首页
>
其他好文
> 详细
2.始化方法
时间:
2016-02-16 20:42:16
阅读:
194
评论:
0
收藏:
0
[点我收藏+]
标签:
继承:把公共的方法和实例变量写在父类里,子类只需要写自己独有的实例变量和方法即可。
Student类继承了Person类,将Person类中的所有实例变量和方法都继承过来了
@interface
Student :
Person
只要写自己独有的实例变量
@end
继承的特点:
1、没有父类的类称作
根类
,OC中的根类是
NSObject
2、继承是单向的,不能互相继承
3、子类继承父类所有的实例变量和方法(父类中私有的实例变量也被继承,但不能被子类访问)
4、继承具有传递性
5、一个类只有一个父类,但可以有多个子类
继承的重写:(先找自己,
逐级向上查找,找到即执?。)
1、如果子类不满足父类的实现可将继承父类的方法重写。
2、声明父类继承的方法,是告诉外界,该方法是重写父类的方法
3、如果本类没有重写父类过来的study方法,则执行父类的study方法,反之,执行子类重写父类的study方法
4、方法的执行,优先从本类找方法的实现
继承
方法的实现:
super:是编译器指令,并非对象
作用:给super发送消息,可以执行父类该方法的实现
[super init]
初始化方法:
1、初始化方法是对象方法即
- 方法
,并且
以init开头
2、初始化方法的作用是为某些实例变量进行赋值
3、一个类的初始化方法可以有多个,但是一个对象的生命周期中,初始化方法只有一次
4、
id或者instancetype类型
的返回值
5、可以带0或多个参数
初始化步骤:
1、向super发送初始化方法,执行父类中的初始化方法,将父类继承过来的实例变量进行初始化
2、初始化之后再将本类独有的实例变量进行初始化
3、全部实例变量初始化之后,将对象传出去
- (
instancetype
)initWithName:(
NSString
*)name age:(
NSInteger
)age gender:(
NSString
*)gender{
self
= [
super
init
];
// 将父类继承过来的isa初始化
if
(
self
) {
// 父类初始化成功之后,在执行自身的实例变量的初始化
[
self
setName
:name];
// _name = name;
[
self
setAge
:age];
// _age = age;
[
self
setGender
:gender];
// _gender = gender;
}
return
self
;
// 全部实例变量初始化之后,将对象传出去
}
初始化的原则:一般选参数最多的初始化方法作为指定初始化方法
self:系统关键字,self在方法中指代当前方法的调用者(外界执行此方法的对象),在类方法中指代类名。
便利构造器:封装了对象创建过程
内部
实现:封装了alloc和初始化操作,创建对象更加方便快捷
便利构造器是+方法
返回本类型的实例
方法名以类名开头
可以有0或多个参数
声明:
+ (
Person
*)personWithName:(
NSString
*)name age:(
NSInteger
)age gender:(
NSString
*)gender;
实现:
+ (
Person
*)personWithName:(
NSString
*)name age:(
NSInteger
)age gender:(
NSString
*)gender {
/*
// 1、创建对象
Person *p = [[Person alloc] initWithName:name age:age gender:gender];
// 2、返回对象
return p;
*/
return
[[
Person
alloc
]
initWithName
:name
age
:age
gender
:gender];
}
2.始化方法
标签:
原文地址:http://www.cnblogs.com/aoliaoli/p/5193526.html
踩
(
0
)
赞
(
0
)
举报
评论
一句话评论(
0
)
登录后才能评论!
分享档案
更多>
2021年07月29日 (22)
2021年07月28日 (40)
2021年07月27日 (32)
2021年07月26日 (79)
2021年07月23日 (29)
2021年07月22日 (30)
2021年07月21日 (42)
2021年07月20日 (16)
2021年07月19日 (90)
2021年07月16日 (35)
周排行
更多
分布式事务
2021-07-29
OpenStack云平台命令行登录账户
2021-07-29
getLastRowNum()与getLastCellNum()/getPhysicalNumberOfRows()与getPhysicalNumberOfCells()
2021-07-29
【K8s概念】CSI 卷克隆
2021-07-29
vue3.0使用ant-design-vue进行按需加载原来这么简单
2021-07-29
stack栈
2021-07-29
抽奖动画 - 大转盘抽奖
2021-07-29
PPT写作技巧
2021-07-29
003-核心技术-IO模型-NIO-基于NIO群聊示例
2021-07-29
Bootstrap组件2
2021-07-29
友情链接
兰亭集智
国之画
百度统计
站长统计
阿里云
chrome插件
新版天听网
关于我们
-
联系我们
-
留言反馈
© 2014
mamicode.com
版权所有 联系我们:gaon5@hotmail.com
迷上了代码!