美文网首页
重写set或get方法

重写set或get方法

作者: 奋斗的郅博 | 来源:发表于2016-11-25 15:04 被阅读257次

【学习笔记】【OC语言】set方法和get方法

1.set方法
作用:用来设置成员变量,可以在方法里面过滤掉一些不合理的值
命名规范:
方法都是以set开头,而且后面跟上成员变量名,成员变量名的首字母必须大写
形参名称不要跟成员变量同名
2.get方法
作用:返回对象内部的成员变量
命名规范:get方法的名称一般就跟成员变量同名
3.成员变量的命名规范
成员变量都以下划线 _ 开头
可以跟get方法的名称区分开
可以跟其他局部变量区分开,一看到下划线开头的变量,肯定是成员变量

*第一种实现方法代码示例

 1 #import <Foundation/Foundation.h>
 2 // 声明
 3 @interface Car : NSObject
 4 {
 5     int _wheels; // 轮子个数
 6 }
 7 /*set方法*/
 8 - (void) setWheels:(int)wheels;
 9 /*get方法*/
10 - (int) wheels;
11 @end
12 
13 @implementation Car
14 // set方法的实现
15 - (void) setWheels:(int)wheels
16 {
17     // 对外面传进来的轮子数进行过滤
18     if (wheels<=0)
19     {
20         wheels = 1;
21     }
22     
23     _wheels = wheels;
24 }
25 
26 // get方法的实现
27 - (int) wheels
28 {
29     return _wheels;
30 }
31 @end

*第二种实现方法代码实例

@property的时候就已经创建了相应的set和get方法
//  Person.h
//  get/set方法重写

#import <Foundation/Foundation.h>

@interface Person : NSObject

@property int age;
@property NSString * name;

@end
@implementation Person
/*
    1. 当想控制外界传入的一些数据的合理性、安全性的时候我们就需要手动重新get/set方法
 */
- (void)setAge:(int)age
{
    _age = age;
    if (_age < 0) {
        _age = 0;
    }
}
/*
    2. 当我们手动 同时 实现了get/set方法的时候,property就不会自动给我们生成成员变量
 */
- (int)age
{
    return _age;    //_age报错
}

注意⚠️:

  1. 这里如果只重写了set或者get方法时候,成员变量_age是正确的,系统不会报错。但是如果同时重写了set和get方法,系统就会报错,说找不到_age这个成员变量。
  1. 用@property声明的成员属性,相当于自动生成了setter getter方法,同时重写了set和get方法,与@property声明的成员属性就不是一个成员属性了,是另外一个实例变量,而这个实例变量需要手动声明

相关文章

  • 重写set或get方法

    【学习笔记】【OC语言】set方法和get方法 1.set方法作用:用来设置成员变量,可以在方法里面过滤掉一些不合...

  • Android 自定义View

    View绘制:1、重写构造函数2、重写onDraw方法3、需要被访问或设置的变量重写 get set方法 Andr...

  • iOS 同时重写get、set方法报错

    iOS 同时重写get、set方法报错,可以看一下这篇文章 OC 同时重写get、set方法报错

  • IOS - 同时重写Get/Set方法

    .h文件写无property属性,get方法,set方法 .m文件重写set和get方法 完结

  • ##swift中重写父类属性的set和get方法

    swift中重写父类属性的set和get方法 重写父类属性的set和get方法,需要添加关键字 override....

  • set、get和willSet、didSet

    OC中我们常重写set和get方法来改变UI,swift中重写set和get方法是下面这种。先定义一个变量,当调用...

  • iOS 重写Swift中的set和get方法

    OC中我们常重写set和get方法来改变UI,Swift中重写set和get方法是下面这种。先定义一个变量,当调用...

  • set、get和willSet、didSet

    OC中我们常重写set和get方法来改变UI,swift中重写set和get方法是下面这种。先定义一个变量,当调用...

  • OC get set 方法理解

    OC get set 方法理解 get set方法不能同时重写 最近在了解oc的属性,oc的属性组成是由成员变量+...

  • swift 的计算属性和存储属性

    1、存储属性: 就是存储一个常量或变量 /// 计算型属性(相当于重写set、get 方法的一些属性,在set、g...

网友评论

      本文标题:重写set或get方法

      本文链接:https://www.haomeiwen.com/subject/lxtwpttx.html