在oc语言中对象对象属性的封装
2014-11-12 12:24
288 查看
#import <Foundation/Foundation.h>
//枚举
typedef enum {
SexMan,
SexWoman
} Sex;
@interface Student : NSObject
{/*成员变量的命名规范:一定要以下划线 _ 开头
作用:
1.让成员变量和get方法的名称区分开
2.可以跟局部变量区分开,一看到下划线开头的变量,一般都是成员变量
*/
//属性默认是@private
int _no;
Sex _sex;
}
/*
set方法
1.作用: 提供一个方法给外界设置成员变量值,可以在方法里面对参数进行相应过滤
2.命名规范:
1> 方法名必须以set开头
2> set后面跟上成员变量的名称,成员变量的首字母必须大写
3> 返回值一定是void
4> 一定要接收一个参数,而且参数类型跟成员变量类型一致
5> 形参的名称不能跟成员变量名一样
*/
- (void)setSex:(Sex)sex;
/*
get方法
1.作用:返回对象内部的成员变量
2.命名规范:
1> 肯定有返回值,返回值类型肯定与成员变量类型一致
2> 方法名跟成员变量名一样
3> 不需要接收任何参数
*/
- (Sex)sex;
// no的set和get方法
- (void)setNo:(int)no;
- (int)no;
@end
@implementation Student
- (void)setSex:(Sex)sex
{
_sex = sex;
}
- (Sex)sex
{
return _sex;
}
- (void)setNo:(int)no
{
_no = no;
}
- (int)no
{
return _no;
}
@end
int main()
{
Student *stu = [Student new];
[stu setSex:SexMan];
[stu setNo:10];
[stu sex];
[stu no];
return 0;
}
//枚举
typedef enum {
SexMan,
SexWoman
} Sex;
@interface Student : NSObject
{/*成员变量的命名规范:一定要以下划线 _ 开头
作用:
1.让成员变量和get方法的名称区分开
2.可以跟局部变量区分开,一看到下划线开头的变量,一般都是成员变量
*/
//属性默认是@private
int _no;
Sex _sex;
}
/*
set方法
1.作用: 提供一个方法给外界设置成员变量值,可以在方法里面对参数进行相应过滤
2.命名规范:
1> 方法名必须以set开头
2> set后面跟上成员变量的名称,成员变量的首字母必须大写
3> 返回值一定是void
4> 一定要接收一个参数,而且参数类型跟成员变量类型一致
5> 形参的名称不能跟成员变量名一样
*/
- (void)setSex:(Sex)sex;
/*
get方法
1.作用:返回对象内部的成员变量
2.命名规范:
1> 肯定有返回值,返回值类型肯定与成员变量类型一致
2> 方法名跟成员变量名一样
3> 不需要接收任何参数
*/
- (Sex)sex;
// no的set和get方法
- (void)setNo:(int)no;
- (int)no;
@end
@implementation Student
- (void)setSex:(Sex)sex
{
_sex = sex;
}
- (Sex)sex
{
return _sex;
}
- (void)setNo:(int)no
{
_no = no;
}
- (int)no
{
return _no;
}
@end
int main()
{
Student *stu = [Student new];
[stu setSex:SexMan];
[stu setNo:10];
[stu sex];
[stu no];
return 0;
}
相关文章推荐
- 黑马程序员—OC基础--对象的属性封装
- 第02天OC语言(04):结构体作为对象属性
- [黑马程序员]11[OC语言]圆,点问题, OC的面向对象程序设计思想和类封装
- FMDB封装,用OC方法存储model,不用写SQL语句。使用runtime获取对象属性
- javascript的函数、创建对象、封装、属性和方法、继承
- JAVA之1.封装一类三角形对象Triangle,该类对象具有三条边的属性,具有初始化三角形的功能、修改边长的功能、判断三条边能否构成三角形的功能、求周长的功能、求面积的功能。
- UserControl 中包含封装了集合对象的属性被设计器自动初始化所引起的错误!也有关于List的问题
- ArrayList封装对象实现多属性同一循环输出
- 利用 C++ Interop 封装 ISO C++ 对象, 供其他 .Net 语言使用
- 浅谈ListBox控件,将对象封装在listBox中,在ListBox中显示对象中某个属性,在ListBox中移除和移动信息
- javascript的函数、创建对象、封装、属性和方法、继承
- 越来越人性化的.Net C#,VB.Net语言特性:自动属性,对象初始化器和集合初始化器 [转]
- 【Objective-C】OC 中对象属性的设置器和访问器
- JavaSE 拾遗(4)——JavaSE 面向对象程序设计语言基础(4)...封装
- struts2对一些属性的使用和对session封装对象类型采用jstl技术的遍历(配图解)
- java之2.封装一类梯形对象Ladder,该类对象具有上底、下底和高的属性,具有初始化梯形的功能、修改上底、下底和高的功能、求周长的功能、求面积的功能。
- [集成IronPython] 使CLR对象对动态语言更友好(一)—— 支持运行时添加删除属性
- 越来越人性化的.Net C#,VB.Net语言特性:自动属性,对象初始化器和集合初始化器
- 自定义UserControl中包含封装了集合对象的属性被设计器自动初始化所引起的错误
- 面向对象语言的三大原则六大属性