类的封装 self语法 继承
来源:互联网 发布:淘宝一口价怎么选择 编辑:程序博客网 时间:2024/05/29 12:32
IOS学习第20天
类的对象与方法
- 匿名对象
1.什么是匿名对象 创建一个对象 而不用一个指针来接受它的地址2.匿名对象的语法 [Person new]; [Person person]; [Person personWithName:@"张三"]; [Person personWithName:@"张三" andAge:18];3.匿名对象的在开发过程中什么时候使用 1>特点:匿名对象由于没有指针指向,所以只能访问一次 2>如果一个对象 只需要使用一个次 那么就可以使用匿名对象 ```###封装* 使用setter方法来对属性赋值做逻辑验证
1.当一个类的属性用@public修饰的时候
在当前类的外部可以用 对象名->_属性 直接访问属性
“这样就不能保证 赋值的时候数据的正确性和合理性
2.解决方案:
1>把@public去掉,为了在类的外部 类的对象不能直接访问成员属性2>写一个方法,目的是可以操作成员属性 - (void)setAge:(int)age; 1)必须是 "-" 开头 2)返回值必须是void 3)方法名必须是set开头 + 去掉下划线首个字母大写的属性名 4)必须有参数,而且参数的类型必须和要操作的属性类型一致 5)参数名字必须是去掉下划线的属性名3>在类的外部,通过类的对象 就不能直接操作成员属性,只能通过调用setter方法来访问属性的值```
- getter方法取到对象的属性的值
1.把@public去掉后,在类的外部 类的对象就不能获取成员属性的值了2.解决方案: 1>为类在提供一个方法 来获取成员属性的值 - (int)age; 1)必须是一个"-"开头的方法 2)返回值类型必须和要获取的属性的类型一致 3)方法名 必须是 去掉下划线的成员属性 4)必须木有参数 2>在类的外部,通过类的对象调用这个方法即可获取返回值 ```* **属性封装的规范**
1.只读封装
只能通过getter方法获取属性的值
只写getter方法 而不写setter方法
2.只写封装
只能通过setter方法设置属性的值
只写setter方法 而不写getter方法
3.我们刚刚说了半天封装
苹果官方的规范:
就算没有任何数据处理的代码,也要对任何成员属性进行封装
“只要写一个类,类中的所有成员属性,必须要有getter或者setter方法
* static
1.C语言中static修饰局部变量表示把局部变量转换成静态变量,函数执行完毕局部变量不被回收下次接着用
2.C语言中static修饰全局变量表示这个全局变量只能在当前文件中使用
3.C语言中static修饰函数表示这个函数只能在当前文件中使用
4.OC中static不能修饰类的属性也不能修饰方法.
* **self的用法**
1.self是什么?
self是一个指针,保存的地址
2.self怎么用?
1>在对象方法中 self保存的是当前对象的地址
2>在类方法中,self保存是 当前类在代码段中的首地址
3.使用场景
1>self在对象方法中
a.如果对象方法中有和属性同名的局部变量,
这时候要访问当前对象的属性,必须要使用 self->成员变量名”注意:一般局部变量不要以”_”开头
b.如果在对象方法中要调用当前对象的其他方法,那必须用self,
格式:[self 其他方法名];
2>self在类方法中 如果在类方法中需要调用当前类的其他类方法 可以使用self [self/当前类名 其他类方法名]; 如果在类方法中 要创建对象 可以使用self [self/当前类名 new]"注意:self不能作为类型来使用
“小知识点
如何找出 一个类在内存中存放的首地址?
1)找一个这个类的对象 调式查看isa指针
2)在这个类的类方法,打印self
3)找一个这个类的对象 调用[对象名 class]方法
4)直接调用这个类的 [类名 class]方法
###继承**继承是类在继承而不是对象在继承****父类对象与子类对象是毫无关系的*** **什么时候应该用继承**1.当发现A类中的成员,B类也有,就让B类继承A类2.继承需要合理:**必须满足is a关系的两个类才能继承*** OC继承的特点
1.单根性/单继承性,OC中一个类只能有一个父类
2.传递性,类C继承自类B,类B继承自类A,那么类C拥有类A的所有属性方法(即子类拥有父类和父类的父类的所有属性和方法)
“`
- 类的封装 self语法 继承
- OC_语法入门_day2_封装/继承/多态/self/super
- 类的继承和封装
- 类的继承和封装
- 类的封装,继承,多态
- 类的继承与封装
- 类的继承与封装
- OC基础-封装+继承+多态+self+类方法
- OC--继承 self 的概念
- Objective-C语法之继承、封装、多态
- 类的封装、继承和多态
- 十三、java类的封装、继承、多态
- 初始python 类的继承与封装
- PHP类的封装与继承
- 探讨PHP类的封装与继承
- 类的封装继承多态
- Php中类的继承,封装,多态
- oc继承self,super的作用
- Java集合简介
- 漫步微积分二十七——曲线下的面积 定积分 黎曼
- Android build system & Android.mk 规范
- Visual Studio 2013编译错误【error c4996:"scanf":This function or variable may be unsaft.】解决方案
- 人脸识别 -Do We Really Need to Collect Millions of Faces for Effective Face Recognition?
- 类的封装 self语法 继承
- 敲砖块(dp )
- 微信能从图片获取位置信息,原理其实很简单
- Android - 解析Json框架:Gson实体类映射
- css3 图片旋转效果 以y轴翻转效果等
- 解决进入不了controller的方法
- 模板方法模式
- Oracle中把逗号分割的字符串转换为可放入in的条件语句的字符数列
- 遍历Map的四种方法