Objective-C基础学习之面向对象三大特性-封装

1.面向对象三大特性

  • 封装性
  • 继承性
  • 多态性

2.什么是封装

  • 封装性就是隐藏实现细节,仅对外公开接口。

3.为什么要进行封装?

  • 下面代码存在问题
// 1成员变量是public的,也就是公开的,我们不能控制外界如何赋值, 外界有可能赋值一些垃圾数据,而我们又不能进行操作
@interface Gun : NSObject
{
    @public// 公开成员变量
    int _bulletCount;// 子弹数量
}
@end

// 可以利用封装来解决这个问题
// 封装:是指隐藏对象的属性和实现的细节,仅对外提供公共的访问方法
  • 类是数据与功能的封装,数据就是成员变量,功能就类方法或对象方法

  • 对数据的封装,也就是对成员变量的封装

  • 不封装的缺点:当一个类把自己的成员变量暴露给外部的时候,那么该类就失去对该成员变量的管理权,别人可以任意的修改你的成员变量。

  • 封装就是将数据隐藏起来,只能用此类的方法才可以读取或者设置数据,不可被外部任意修改是面向对象设计本质。这样降低了数据被误用的可能性 ,提高代码的灵活性!

4.封装的好处

  • 好处

    • 将变化隔离
    • 提高安全性
  • 原则

    • 将不需要对外提供的内容都隐藏起来,把属性都隐藏,提供公共的方法对其访问

你可能感兴趣的:(Objective-C基础学习之面向对象三大特性-封装)