封装
- 封装就是成员变量的封装;
- 要有成员变量就要有类;有声明就有实现;
- @public表示下面的成员变量可以被别人任意赋值;
- 修改成员变量的方法:
- 第一个方法是直接对成员变量访问;
- 第二个方法是通过方法来传递成员变量来修改;
- 提供一个方法给外界设置age属性值;不需要返回值;
- 设置成员变量:
- 一般我们提供一个方法给别人来设置成员变量我们一般称为set方法;
- set方法:
- 作用:可以在方法中对参数进行过滤;
- 命名规范:方法名必须以set开头;set后面跟上成员变量的名称,而且成员变量的首字母必须大写;
- set方法返回值一定是void;
- 一定要接收一个参数,而且参数类型跟成员边个两类型一致;形参的名称不能跟成员变量一样;
- - (void) setAge:(int)age;
- set方法实现;
- - (void) setAge:(int)newAge{
- if (newAge <= 0)
- {
- newAge =1;
- }
- new = newAge;
- }
- 调用方法:
- Student *stu = [Student new];
- [stu setAge:10];
- 把成员变量设置到一个方法中,就是对成员变量的封装;
- 返回对象内部的成员变量:
- get方法
- 命名规范:肯定有返回值,返回值类型与成员变量类型一致;
- get方法的方法名与成员变量名一致;
- 声明:
- - (int)age;
- 实现:
- - (int)age
- {
- return age;
- }
- 调用:
- NSLog(@"学生的年龄是:%d",[stu age]);
- 如果只允许外界访问我的学好NO,不允许外界修改我的No;解决方法:只需要提供get方法;不提供set方法;
- 封装的细节:
- 成员变量的命名规范:一定要以下划线 _ 开头
- 作用:让成员变量和get方法的名称区分开;可以跟局部变量区分开,一看到下划线开头的变量,一般都是成员变量;
- 监听成员变量的改变;