美文网首页八天学会OC
第04天OC语言(02):property基本使用

第04天OC语言(02):property基本使用

作者: liyuhong | 来源:发表于2017-07-21 17:30 被阅读18次
    • 不要等到明天,明天太遥远,今天就行动。
    须读:看完该文章你能做什么?

    property的使用

    学习前:你必须会什么?(在这里我已经默认你具备C语言的基础了)

    什么是setter、getter方法


    一、本章笔记
     @property 是一个编译器指令
     在Xcode4.4之前, 可以使用@property 来代替 getter / setter方法的声明
     也就是说我们 只需要写上@property 就不用写getter / setter方法的声明
     编译器只要看到 @property, 就知道我们要生成某一个属性的 getter/setter方法的声明
     
     @property int age;
     等同于👇
     1.定义变量
     {
     int _age;
     }
     2.声明setter 和 getter方法
     - (void)setAge:(int)age;
     - (int)age;
    
    二、code
    main.m
    ######main.m
    #pragma mark 02-property基本使用
    #pragma mark - 代码
    #import <Foundation/Foundation.h>
    #pragma mark 类
    #import "Person.h"
    #pragma mark - main函数
    int main(int argc, const char * argv[])
    {
        Person *p = [Person new];
        [p setAge:22];
        [p age];
        
        [p set_age:22];
        [p _age];
        return 0;
    }
    
    
    Person
    >>>.h
    #import <Foundation/Foundation.h>
    
    @interface Person : NSObject
    {
    //    int _age;
        double _height;
        double _weight;
        NSString *_name;
    }
    @property int age;
    @property int _age; // 这样格式不符合规范 并且证明 系统是如何生成setter和getter方法的
    /*
     - (void)set_age:(int)age;
     - (int)_age
     */
    
    
    #pragma mark @property
    /*
     @property 是一个编译器指令
     在Xcode4.4之前, 可以使用@property 来代替 getter / setter方法的声明
     也就是说我们 只需要写上@property 就不用写getter / setter方法的声明
     编译器只要看到 @property, 就知道我们要生成某一个属性的 getter/setter方法的声明
     
     @property int age;
     等同于👇
     1.定义变量
     {
        int _age;
     }
     2.声明setter 和 getter方法
     - (void)setAge:(int)age;
     - (int)age;
     */
    
    
    
    #pragma mark getter - setter
    /*
     setter:
     作用 : 用于给成员变量赋值
     1. 一定是对象方法
     2. 一定没有返回值
     3. 方法名称以set开头, 后面跟上需要赋值成员变量名称,并且去掉下划线,然后首字母大写
     4.一定有参数,参数类型 和 需要赋值的成员变量一致, 参数名称 就是 需要赋值的成员变量名称去掉下滑线
     */
    //- (void)setAge:(int)age;
    - (void)setHeight:(double)height;
    - (void)setWeight:(double)weight;
    - (void)setName:(NSString *)name;
    /*
    getter:
     作用: 用于获取成员变量的值
     1.一定是对象方法
     2.一定有返回值,返回值类型 和 需要获取的成员变量的类型 一致
     3.方法名称 就是 需要获取的成员变量的名称 去掉下划线
     4.一定没有参数
     */
    //- (int)age;
    - (double)height;
    - (double)weight;
    - (NSString *)name;
    
    
    @end
    
    >>>.m
    #import "Person.h"
    
    @implementation Person
    
    
    //- (void)setAge:(int)age
    //{
    //    _age = age;
    //}
    - (void)setHeight:(double)height
    {
        _height = height;
    }
    - (void)setWeight:(double)weight
    {
        _weight = weight;
    }
    - (void)setName:(NSString *)name
    {
        _name = name;
    }
    
    //- (int)age
    //{
    //    return _age;
    //}
    - (double)height
    {
        return _height;
    }
    - (double)weight
    {
        return _weight;
    }
    - (NSString *)name
    {
        return _name;
    }
    
    @end
    

    相关文章

      网友评论

        本文标题:第04天OC语言(02):property基本使用

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