黑马程序员 OC------封装 继承 多态的基本概念

---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------  

封装基本概念

因为成员变量是public,也就是公开的,我们不能控制外界如何赋值

    外界有可能赋值一些脏数据

    可以利用封装来解决这个问题

   封装:是指隐藏对象的属性和实现细节,仅对外提供公共的访问方法

因为成员变量是public的,也就是公开的,我们不能控制外界如何赋值

    外界有可能赋值一些脏数据

    可以利用封装来解决这个问题

    封装:是指隐藏对象的属性和实现细节,仅对外提供公共的访问方法

所以我们可以利用  get/set来解决

给成员变量赋值的方法我们称之为set方法

获取成员变量的值的方法我们称之为get方法

set方法:

 1.一定是对象方法

 2.一定没有返回值

 3.方法名称一定以set开头,set后面跟上属性名称去掉下划线,并且首字母大写

 4.一定有参数参数类型一定和成员变量类型相同

5.参数名称一般是成员变量名称去掉下划线

get方法

 1.一定是对象方法

 2.一定有返回值类型,返回值类型和成员变量类型相同

 3.方法名称是成员变量名称去掉用下划线

4.一定没有参数

如果没有提供set方法的成员变量我们称之为只读属性, 也就是说只有get没有set

如果没有提供get方法的成员变量我们称之为只写属性, 也就是说只有set没有get

组合模式:

组合模式:组合模式就是在一个类中,声明类其他对象的指针变量(把其它对象声明为当前对象成员变量)

     组合模式就是一个"谁拥有谁"的一个概念

     如何判断组合模式是否合理谁拥有谁

     组合模式的优点:

     全局对象方法中都可以直接访问,简化了代码

     缺点:

     依赖性比较大

     组合模式的使用场景:

     当多个方法中都用到了同一个对象,那么就把他设置成成员变量

继承基本概念

 总结:

     基本概念:

     B类继承类A, B类就拥有类A类的成员变量和方法

     如何判断继承是否合理: is a XXX  XXX

     

     

     继承的好处:

     继承的出现提高类代码的复用性

     继承的出现让类与类之间产生类关系提供了多态的前提

     

     

     继承的坏处:

     耦合性太强

     

     继承中的注意点:

     >1.子类不能拥有和父类相同名称的成员变量

     >2.在继承中调用某个方法时,优先去当前类中查找,如果找不到再去父类中找

     >3.OC中只有单继承(只允许有一个父类),没有多继承(同时继承两个父类),但是支持多层继承

注意,在子类中不能有和父类中名称一模一样的成员变量

当子类当中编写类和父类当中一模一样的方法,我们称之为重写

继承中方法的调用顺序,会先在本类中找,如果本类中找不到再去父类中找

多态基本概念

总结:

     什么是多态:某一类事物的多种形态

     多态的前提:必须有继承关系

     表现形式:父类类型的指针指向子类对象

     

     多态的局限性:

     父类类型的指针不能用来调用之类类型的特有方法, 如果想调用子类特有方法必须进行强制类型转换

2. 多态的体现
Person *p = [Student new];
p->age = 100;
[p walk];
子类对象赋值给父类指针
父类指针访问对应的属性和方法
---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ---------------------- 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值