码迷,mamicode.com
首页 > 其他好文 > 详细

黑马程序员—13-oc封装

时间:2014-12-20 07:04:25      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:


 

一、   关于封装

  1、封装是对象和类概念的主要特性。它是隐藏内部实现,稳定外部接口,可以看作是“包装”。 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
  2、好处:使用更加简单  变量更加安全可以隐藏内部实现细节  开发速度加快
OC中一个类可以继承另一个类,被继承的类成为超类(super class),继承的类是子类(child class),可以直接拥有父类中所有非私有成员(相关实例变量)、方法。

二、   set方法和get方法

1.  set方法和get方法的使用场合

@public的成员可以被随意赋值,应该使用set方法和get方法来管理成员的访问(类似机场的安检、水龙头过滤,过滤掉不合理的东西),比如僵尸的生命值不能为负数

2.  set方法

1)   作用:用来设置成员变量,可以在方法里面过滤掉一些不合理的值

2)   命名规范:

Ø   方法都是以set开头,而且后面跟上成员变量名,成员变量名的首字母必须大写

Ø   形参名称不要跟成员变量同名

3.  get方法

1)   作用:返回对象内部的成员变量

2)   命名规范:get方法的名称一般就跟成员变量同名

4.  成员变量的命名规范

Ø   成员变量都以下划线 _ 开头

Ø   可以跟get方法的名称区分开

Ø   可以跟其他局部变量区分开,一看到下划线开头的变量,肯定是成员变量

5.  代码示例

#import <Foundation/Foundation.h>

// 声明

@interface Car : NSObject

{

    int _wheels; // 轮子个数

}

/*set方法*/

- (void) setWheels:(int)wheels;

/*get方法*/

- (int) wheels;

@end

 

@implementation Car

// set方法的实现

- (void) setWheels:(int)wheels

{

    // 对外面传进来的轮子数进行过滤

    if (wheels<=0)

    {

       wheels = 1;

    }

   

    _wheels= wheels;

}

 

// get方法的实现

- (int) wheels

{

    return _wheels;

}

@end

6.  封装的好处

Ø   过滤不合理的值

Ø   屏蔽内部的赋值过程

Ø   让外界不必关注内部的细节

三、   OC的弱语法

Ø 一个没有定义的方法,可编译,链接会有警告,运行时会有这样的错误

    Unrecognizedselector sent to instance

Ø 不声明也可以只写实现

黑马程序员—13-oc封装

标签:

原文地址:http://www.cnblogs.com/zhangxining/p/4175021.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!