四:setter和getter方法

setter和getter方法整体声明和实现虽然后面可以用@property代替,但是在后面的iOS开发中,setter方法或getter方法单独使用的频率比较高,应用比较广泛!

@Interface Person:NSObject
{
  NSString *_name;
  int _age;
  Sex _sex;      //此处枚举类型,属于基本数据类型,不用加“*”
  float _height;
}
@end

一、setter方法就是给属性赋值的方法

书写格式:

1、在类的声明中:- (void) +(set+属性去掉"_",首字母大写) : (数据类型/对象/类) + (属性去掉"_");

注意事项:

(1) setter方法一定是对象方法

(2) 一定没有返回值

(3) 一定以set开头, 并且set后面跟上需要设置的成员变量的名称去掉下划线, 并且首字母大写

(4) 一定有参数, 参数类型一定和需要设置的成员变量的类型一致, 并且参数名称就是成员变量的名称去掉下划线

举例:

- (void) setName: (NSString *)name;
- (void)setAge: (int)age;
- (void)setSex:(Sex)sex;
- (void)setHeight: (float)height; 

2、在类的实现中:大括号内可以添加其它内容,但是必须实现 属性 =(去掉"_"的属性)

- (void) setName: (NSString *)name{
  _name = name;
}

- (void)setSex:(Sex)sex{
  _sex = sex;
}

 

二、getter方法就是获取成员变量值得方法

书写格式:

1、类的声明中 :- (数据类型/对象/类)+(属性去掉“_”)

注意事项:

(1) getter方法一定是对象方法

(2)一定有返回值, 而且返回值一定和获取的成员变量的类型一致

(3)方法名称就是获取的成员变量的名称去掉下划线

(4) 一定没有参数

举例:

- (NSString *)name;

- (int)age;

- (Sex)sex;

- (float)height;

2、类的实现中:在类的实现中可以添加其它内容,但是必须有 return + 属性

- (NSString *)name{
  return _name;
}

- (Sex)sex{
  return _sex;
}

 

三、其它应用:

1、一个属性可以只有getter方法, 没有setter方法, 这种属性我们称之为只读属性

2、一个属性也可以只有setter方法, 没有getter方法, 这种属性我们称之为只写属性

3、如果既有setter方法又有getter方法, 那么这种属性我们称之为可读可写的属性

4、一个属性也可以没有getter和setter, 这种属性我们称之为私有属性

5、setter方法和getter方法的声明和实现可以直接用下面代替(写在类的声明里面)

@property(nonatomic,assin)NSString * name;

@property(nonatomic,assin)Sex sex;

posted @ 2016-04-22 06:42  hissia  阅读(7496)  评论(0编辑  收藏  举报