zoukankan      html  css  js  c++  java
  • 【好程序员训练营】Objective-C学习笔记----------成员变量和成员函数的封装

    <A href="http://www.goodprogrammer.org/" target="blank">ios培训</A>------我的OC语言笔记,期待与您交流!

      前言--在我们开发项目的过程中,很多时候我们不想程序里面的成员变量或者成员函数暴露出来,我们只希望别人通过一些方法来调用这些变量或者函数,

    这时就需要用到成员变量和成员函数的封装

      

      一、成员变量的封装

    @interface Person:NSObject{
    @private
        int age;
     NSString *name;            //定义一个成员变量name
    }
    -(id)init;
    -(void)setname:(NSString *)newname;
    @end
    
    @implementation Person
    
    -(void)setname:(NSString *)newname{      //将name封装到setname这个函数中
        name = newname;
    }

    在上面的这段代码中,我们定义了一个引用类型的成员变量name,用setname这个函数进行封装过后就可以用setname:这个函数直接操作name了,否则我们就需要用obj->name = @"...";;来进行操作,这样成员变量就暴露在外面了。

      二、成员函数的封装

    @interface Person:NSObject{
    @private
        int age;
        NSString *name;
    }
    -(void)setname:(NSString *)newname;
    -(void)setage:(int)newage;
    -(void)setname:(NSString *)newname age:(int)newage;
    @end
    
    @implementation Person
    
    -(void)setname:(NSString *)newname{             //函数一
        name = newname;
    }
    -(void)setage:(int)newage{                             //函数二
        age = newage;
    }
    -(void)setname:(NSString *)newname age:(int)newage{         //函数三
        [self setname:newname];            //将函数setname:调了进来
        [self setage:newage];              //将函数setage:调了进来
    }

    上面的这段代码中,函数一和函数二分别封装了name和age这两个成员变量,函数三将函数二封装了起来,我们可以直接赋给函数三参数来操作age和name这两个成员变量。

  • 相关阅读:
    算数表达式二叉树
    Java汉诺塔算法
    Struts2中的设计模式ThreadLocal模式续
    Java基础知识总结(五)
    Java数组扩容算法及Java对它的应用
    Java Arrays.sort源代码解析
    Java字符串排列算法
    Java基础知识总结(三)
    SSIS OLE DB Source中执行带参数的存储过程
    Sql server中Collation conflict问题
  • 原文地址:https://www.cnblogs.com/ITLiu/p/4540839.html
Copyright © 2011-2022 走看看