zoukankan      html  css  js  c++  java
  • OC-封装

    一、      set方法和get方法

    1.          set方法和get方法的使用场合

    @public的成员可以被随意赋值,应该使用set方法和get方法来管理成员的访问(类似机场的安检、水龙头过滤,过滤掉不合理的东西),比如僵尸的生命值不能为负数

    2.          set方法

    1)       作用:用来设置成员变量,可以在方法里面过滤掉一些不合理的值

    2)       命名规范:

    • 方法都是以set开头,而且后面跟上成员变量名,成员变量名的首字母必须大写
    • 形参名称不要跟成员变量同名

    3. get方法

    1)       作用:返回对象内部的成员变量

    2)       命名规范:get方法的名称一般就跟成员变量同名

    4. 成员变量的命名规范

    • 成员变量都以下划线 _ 开头
    • 可以跟get方法的名称区分开
    • 可以跟其他局部变量区分开,一看到下划线开头的变量,肯定是成员变量

    5. 封装的好处

    • 过滤不合理的值
    • 屏蔽内部的赋值过程
    • 让外界不必关注内部的细节
    #import <Foundation/Foundation.h>
    //声明
    @interface Car : NSOvject
    {
        int _wheels;//成员变量
    }
    //set 方法
    - (void)setWheels:(int)wheels;
    //get 方法
    - (void)wheels;
    @end
    
    @implementation Car
    //set方法实现
    - (void) setWheels:(int)wheels
    {
        if(wheels <= 0)
        {
            wheels = 1;
        }
        _wheels = wheels;
    }
    //get 方法实现
    - (int) wheels
    {
        return _wheels;
    }
    @end
    #import <Foundation/Foundatrio.h>
    
    @interface Student : NSObject
    {
        @public
        int _age;
        Sex _sex;
    }
    //1,set开头 2,变量首字母大写
    //3,返回值一定为void 4,一定接受一个参数,参数类型跟成员变量类型一致
    //5,参数名称不能跟成员变量一样
    - (void)setAge:(int)age;  
    - (void)study;
    @end
    
    
    @implementation Student
    
    - (void)setSex:(Sex)Sex
    {
        _sex = sex;
    }
    
    - (void)setAge:(int)newAge
    {
        if (newAge <= 0)
        {
            newAge = 1;
        }
        _age = newAge;
    }
    
    - (int)age//get方法
    {
        return age;
    }
    
    - (void)study
    {
        NSLog(@"%d 岁的学生在学习", age);
    }
    @end
    
    
    
    int main()
    {
        Student *stu = [Student new];
        [stu setAge:0];
        [stu study];
    
        NSLog(@"学生的年龄是%d岁", [stu age]);//调用get方法
        ruturn 0;
    }
  • 相关阅读:
    springmvc log4j 配置
    intellij idea maven springmvc 环境搭建
    spring,property not found on type
    intellij idea maven 工程生成可执行的jar
    device eth0 does not seem to be present, delaying initialization
    macos ssh host配置及免密登陆
    centos7 搭建 docker 环境
    通过rest接口获取自增id (twitter snowflake算法)
    微信小程序开发体验
    gitbook 制作 beego 参考手册
  • 原文地址:https://www.cnblogs.com/IDRI/p/4946009.html
Copyright © 2011-2022 走看看