zoukankan      html  css  js  c++  java
  • 四: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;

  • 相关阅读:
    ccr1
    与非CCR代码互操作
    ccr test
    CCR
    tpl + ccr
    TPL
    利用 Rational ClearCase ClearMake 构建高性能的企业级构建环境
    Android错误:Re-installation failed due to different application signatures
    C 单例模式
    C 工厂模式 还有其他的模式
  • 原文地址:https://www.cnblogs.com/hissia/p/5419793.html
Copyright © 2011-2022 走看看