黑马程序员——Objective-C的封装、继承与多态
2014-12-30 14:08
363 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1、什么是封装、继承、多态
【1】封装就是在程序上,隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问,将抽象得到的属性和行为相结合,形成一个整体。
【2】继承在OC中指一个子类拥有父类的所有成员变量和方法,我们称这个子类继承了它的父类。OC中的继承是单继承,即一个子类只能有一个父类。
【3】多态是建立在继承的基础上的,没有继承就没有多态。多态指的是在程序中父类的指针也可以指向子类对象的特性。
2、封装、继承、多态的优点
【1】封装的好处在于控制了程序中属性的读写权限和过滤条件,使属性的访问更加安全方便;
【2】继承的好处是建立了类与类之间的关系,增强了代码的可读性,并且减少了冗余代码的数量。
【3】多态的好处在于使得方法的实现更加便捷,可以使用父类的指针调用多种子类对象。增强代码的重用性,并使得代码的编写更加灵活。
3、封装的细节
【1】封装中一般不声明@public类型的成员变量,@public允许在任何作用域内修改变量的值;
成员变量的三种类型:
a)@public 作用范围为任何地方
b)@protected 作用范围为本类和子类(此为默认值)
c)@private 作用范围为本类
官方图示如下:
【2】成员变量名一般以"_"开头,优点是:可以方便辨识一般变量和成员变量,并且方便辨识get()方法名和成员变量;
【3】封装中常用的get()和set()方法:
a)set()方法:
作用:提供一个方法给外界设置成员变量值,可以在方法里面对参数进行相应过滤(见例程1);
命名规范:
1>方法名必须以set开头
2> set后面跟上成员变量的名称,成员变量的首字母必须大写
3>返回值一定是void
4>一定要接收一个参数,而且参数类型跟成员变量类型一致
5>形参的名称不能跟成员变量名一样
b)get()方法:
作用:返回对象内部的成员变量(见例程2);
命名规范:
1>肯定有返回值,返回值类型肯定与成员变量类型一致
2>
方法名跟成员变量名一样
3>
不接收任何参数
【4】类方法与对象方法
对象方法:
1>
“-” 开头
2>
只能由对象调用
3>
对象方法中能访问当前对象的成员变量
类方法:
1> “+” 开头
2>
只能由类调用
3>
类方法中不能访问成员变量
类方法的好处和使用场合
1>
不依赖于对象,执行效率高
2> 能用类方法,尽量用类方法
3> 场合:当方法内部不需要使用到成员变量时,就可以改为类方法
可以允许出现类方法和对象方法的方法名相同,但出于可读性考虑尽量不要这么起名。
【5】方法名起名与声明规范
a)不带入形参的方法名
b)包涵1个形参的方法名
c)包涵多个形参的方法名
4、继承的细节
注意点:
1> 父类必须声明在子类的前面
2> 子类不能拥有和父类相同的成员变量
3> 调用某个方法时,优先去当前类中找,如果找不到,去父类中找
重写的定义:子类重新实现父类中的某个方法,覆盖父类以前的做法。
1、什么是封装、继承、多态
【1】封装就是在程序上,隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问,将抽象得到的属性和行为相结合,形成一个整体。
【2】继承在OC中指一个子类拥有父类的所有成员变量和方法,我们称这个子类继承了它的父类。OC中的继承是单继承,即一个子类只能有一个父类。
【3】多态是建立在继承的基础上的,没有继承就没有多态。多态指的是在程序中父类的指针也可以指向子类对象的特性。
2、封装、继承、多态的优点
【1】封装的好处在于控制了程序中属性的读写权限和过滤条件,使属性的访问更加安全方便;
【2】继承的好处是建立了类与类之间的关系,增强了代码的可读性,并且减少了冗余代码的数量。
【3】多态的好处在于使得方法的实现更加便捷,可以使用父类的指针调用多种子类对象。增强代码的重用性,并使得代码的编写更加灵活。
3、封装的细节
【1】封装中一般不声明@public类型的成员变量,@public允许在任何作用域内修改变量的值;
成员变量的三种类型:
a)@public 作用范围为任何地方
b)@protected 作用范围为本类和子类(此为默认值)
c)@private 作用范围为本类
官方图示如下:
【2】成员变量名一般以"_"开头,优点是:可以方便辨识一般变量和成员变量,并且方便辨识get()方法名和成员变量;
【3】封装中常用的get()和set()方法:
a)set()方法:
作用:提供一个方法给外界设置成员变量值,可以在方法里面对参数进行相应过滤(见例程1);
命名规范:
1>方法名必须以set开头
2> set后面跟上成员变量的名称,成员变量的首字母必须大写
3>返回值一定是void
4>一定要接收一个参数,而且参数类型跟成员变量类型一致
5>形参的名称不能跟成员变量名一样
b)get()方法:
作用:返回对象内部的成员变量(见例程2);
命名规范:
1>肯定有返回值,返回值类型肯定与成员变量类型一致
2>
方法名跟成员变量名一样
3>
不接收任何参数
// 例程1 set方法的实现 - (void)setAge:(int)newAge { // 对传进来的参数进行过滤 if (newAge <= 0) { newAge = 1; } age = newAge; }
// 例程2 get方法的实现 - (int)age { return age; }
【4】类方法与对象方法
对象方法:
1>
“-” 开头
2>
只能由对象调用
3>
对象方法中能访问当前对象的成员变量
类方法:
1> “+” 开头
2>
只能由类调用
3>
类方法中不能访问成员变量
类方法的好处和使用场合
1>
不依赖于对象,执行效率高
2> 能用类方法,尽量用类方法
3> 场合:当方法内部不需要使用到成员变量时,就可以改为类方法
可以允许出现类方法和对象方法的方法名相同,但出于可读性考虑尽量不要这么起名。
【5】方法名起名与声明规范
a)不带入形参的方法名
b)包涵1个形参的方法名
c)包涵多个形参的方法名
4、继承的细节
注意点:
1> 父类必须声明在子类的前面
2> 子类不能拥有和父类相同的成员变量
3> 调用某个方法时,优先去当前类中找,如果找不到,去父类中找
重写的定义:子类重新实现父类中的某个方法,覆盖父类以前的做法。
相关文章推荐
- 黑马程序员——Objective-C——封装、继承、多态
- 黑马程序员—Objective-C基础_封装、继承、多态
- 黑马程序员——Objective--C笔记之封装 继承 多态
- 【黑马程序员】iOS学习之路——Objective-C之封装、继承和多态
- 黑马程序员Objective-C笔记:封装,继承,多态
- 黑马程序员—Objective-C学习—封装、继承、多态
- 黑马程序员——Objective-C语言知识整理——封装、继承与多态
- 【Objective-C学习笔记】OC三大特性:封装、继承、多态
- Objective-C入门11:类的三大特性(封装,继承,多态)
- 黑马程序员-----------------面向对象_封装、继承、多态
- Objective-C语法之继承、封装、多态
- 黑马程序员_java封装-继承-多态为面向对象的三大基石
- 黑马程序员——Java基础---面向对象(封装、继承、多态)
- 黑马程序员-------面向对象的封装、继承、多态一些学习笔记
- 黑马程序员_iOS开发之OC之面向对象之三大特性封装、继承和多态
- 黑马程序员—面向对象之封装、继承、多态
- 黑马程序员_五 【初识面向对象】【类、构造方法、对象】【封装、继承、多态】【this、super】
- [Objective-C] 封装、继承和多态
- 黑马程序员---object-c知识点总结(一)封装,继承,多态
- OC基础-零基础学习Objective-C:第二部分.封装、继承和多态