【好程序员训练营】Objective-C学习笔记----------成员变量和成员函数的封装

时间:2021-12-28 12:38:56

<A href="http://***/" 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这两个成员变量。