OC学习第三章 点语法 属性 继承 多态
2015-10-30 20:10
204 查看
OC学习 第三章 点语法 属性 继承 多态
1.点语法
要想使用点语法,setter/getter方法必须严格按照格式来写(首字母大写且只能对应一个成员变
量)
对象名.成员变量 = 值;
s.nowlive=1800;
s.agolive=2000;
s.nowat=@"水晶";
s.agoat=@"草丛";
s.atack=150;
s.defense =40;
2.属性 @property(nonatomic,strong)NSString
*name;
属性帮我们封装了setter/getter方法 格式为:@property
+ 属性名(.h文件)
属性注意事项:
1、当属性名和成员变量名一样时,如果我们想保证成员变量有值,那么就需要在.m中加
入@synthesize变量名。
2、当属性名和成员变量名一样时,如果我们对成员变量的值不强求,但我们又想打印赋上的值,这 时在.m里可以使用_属性名或者self.属性名。
3、当定义一个属性时,会首先查找是否有以_属性名命名的成员变量,如果有,则默认对其进
行set和get,如果没有,则隐式生成以“_属性名”命名的变量。
4、当我们使用属性时,成员变量可以省略。
3.继承特点:子类继承父类后,重写了父类的非私有的方法和属性。
(1)使用继承可以实现代码的复用,减少代码的
(2)objective c中一个类可以继承另外一个类;
(3)继承关系是可以传递的;
(4)单一继承性(只能继承一个父类)
(5)被继承的类称为父类或超类(基类)
继承的类称为子类或派生类(孩子类)
(6)子类可直接“拥有“父类中所有允许子类继承的属性和方法
(7)子类可以改变父类中已有的方法,执行不同的代码实现
(8)子类除了可以调用父类的方法,也可以调用父类的父类的方法,也就是说继承可以确 保某个父类型之下的所有类都会有父类型所持有的全部方法;
继承中方法的调用流程:首先到子类去找,如果有该方法,就调用子类方法,如果没有实现,就再到父类去
找,如果父类还没有,再到父类的父类去找,如果最后一直没招到,程序会崩溃
4.多态:父类的方法被多个子类继承,因子类实现方法不同而表现出的多种形态(父类指针指向子类对象)
多态在代码中的体现,即为多种形态,必须要有继承,没有继承就没有多态。
在使用多态是,会进行动态检测,以调用真实的对象方法。
多态在代码中的体现即父类指针指向子类对象。
Person *p = [[Student alloc]init];父类指针指向子类对象,编译时会认为是父类的对象,
但运行时,会检测其具体是谁的对象
[p sleep];
虽然说实际上是子类的对象,但是在编译期间,仍被 当成父类使用,因此,不能直接调用子类的方法或属
性
[p feedDog]
1.点语法
要想使用点语法,setter/getter方法必须严格按照格式来写(首字母大写且只能对应一个成员变
量)
对象名.成员变量 = 值;
s.nowlive=1800;
s.agolive=2000;
s.nowat=@"水晶";
s.agoat=@"草丛";
s.atack=150;
s.defense =40;
2.属性 @property(nonatomic,strong)NSString
*name;
属性帮我们封装了setter/getter方法 格式为:@property
+ 属性名(.h文件)
属性注意事项:
1、当属性名和成员变量名一样时,如果我们想保证成员变量有值,那么就需要在.m中加
入@synthesize变量名。
2、当属性名和成员变量名一样时,如果我们对成员变量的值不强求,但我们又想打印赋上的值,这 时在.m里可以使用_属性名或者self.属性名。
3、当定义一个属性时,会首先查找是否有以_属性名命名的成员变量,如果有,则默认对其进
行set和get,如果没有,则隐式生成以“_属性名”命名的变量。
4、当我们使用属性时,成员变量可以省略。
3.继承特点:子类继承父类后,重写了父类的非私有的方法和属性。
(1)使用继承可以实现代码的复用,减少代码的
(2)objective c中一个类可以继承另外一个类;
(3)继承关系是可以传递的;
(4)单一继承性(只能继承一个父类)
(5)被继承的类称为父类或超类(基类)
继承的类称为子类或派生类(孩子类)
(6)子类可直接“拥有“父类中所有允许子类继承的属性和方法
(7)子类可以改变父类中已有的方法,执行不同的代码实现
(8)子类除了可以调用父类的方法,也可以调用父类的父类的方法,也就是说继承可以确 保某个父类型之下的所有类都会有父类型所持有的全部方法;
继承中方法的调用流程:首先到子类去找,如果有该方法,就调用子类方法,如果没有实现,就再到父类去
找,如果父类还没有,再到父类的父类去找,如果最后一直没招到,程序会崩溃
4.多态:父类的方法被多个子类继承,因子类实现方法不同而表现出的多种形态(父类指针指向子类对象)
多态在代码中的体现,即为多种形态,必须要有继承,没有继承就没有多态。
在使用多态是,会进行动态检测,以调用真实的对象方法。
多态在代码中的体现即父类指针指向子类对象。
Person *p = [[Student alloc]init];父类指针指向子类对象,编译时会认为是父类的对象,
但运行时,会检测其具体是谁的对象
[p sleep];
虽然说实际上是子类的对象,但是在编译期间,仍被 当成父类使用,因此,不能直接调用子类的方法或属
性
[p feedDog]
相关文章推荐
- iOS 静态库
- MIPS实现Fibonacci
- 【hibernate集锦】---悲观锁和乐观锁
- iOS9使用提示框的正确实现方式
- SQL的作用
- JavaScript简介
- iOS9以来,提交应用到AppStore审核遇到的坑
- 83 Remove Duplicates from Sorted List
- 无聊的周五晚上
- iOS 9 配置HTTP
- [转]Android:异步处理之AsyncTask的应用(二)
- HDU 1166 敌兵布阵(区间求和+单点更新)
- OC基础 -- 局部变量,全局变量,成员变量 的区别
- iOS事件传递:响应者链
- MFC学习笔记之:Windows如何区分鼠标双击和两次单击
- 小技巧1-Mac OS 苹果操作系统下显示隐藏文件或者关闭显示隐藏文件。
- 夺命雷公狗jquery---56通过ajax高级实现模拟post请求
- 【字典树】hdu 1075 What Are You Talking About
- Hibernate5创建工厂回话类SessionFactory
- Oracle性能调优(AWR)