黑马程序员技术交流社区

标题: OC基础学习笔记 封装性setter和getter方法 [打印本页]

作者: zhecipinle    时间: 2015-11-9 16:24
标题: OC基础学习笔记 封装性setter和getter方法
1、setter方法
      作用:为外界提供设置成员变量赋值的方法。使变量不可以被外部任意访问和修改,不使用给成员变量@public,提高安全性。
      命名规范:返回类型为void空类型。方法名用set开头之后写名字(去掉下划线),名字首字母大写。必须由接收参数,且参数的类型必须与相应变量的类型相同,参数名不要和成员变量名称重复。
2、getter方法
      作用:为外界提供显示内部成员变量的方法。也是使变量不可以被外部任意访问和修改,不使用给成员变量@public,提高安全性。
      命名规范:必须有返回值,且返回值类型和相应成员变量相同。方法名与成员变量相同(去掉下划线),不需要接收参数。
      例:在Person类中
      Person.h声明头文件
   #import <Foundation/Foundation.h>


   typedef enum{kSexMan,kSexWoman} Sex;//声明性别Sex的枚举类型

   @interface Person : NSObject
   {
       NSString *_name;
       int _age;
       Sex _sex;
       float _height;
   }
     //声明set方法
   -(void)setName:(NSString*)name;
   -(void)setAge:(int)age;
   -(void)setSex:(Sex)sex;
   -(void)setHeight:(float)height;
     //声明get方法
   -(NSString *)name;
   -(int)age;
   -(Sex)sex;
   -(float)height;
   @end

   Person.m实现文件
   #import "Person.h"//必须调用Person.h的头文件

   @implementation Person
   //实现set方法
   -(void)setName:(NSString*)name{
       _name = name;
   }
   -(void)setAge:(int)age{
       _age = age;
   }
   -(void)setSex:(Sex)sex{
       _sex = sex;
   }
   -(void)setHeight:(float)height{
       _height = height;
   }
   //实现get方法
   -(NSString *)name{
       return _name;
   }
   -(int)age{
       return _age;
   }
   -(Sex)sex{
       return _sex;
   }
   -(float)height{
       return _height;
   }

   @end

      main.m执行程序中
   #import <Foundation/Foundation.h>
   #import "Person.h"
   int main(int argc, const char * argv[]) {
       @autoreleasepool {
           Person *p = [[Person alloc]init];//对象实例化
           //用setter方法为对象赋值
           [p setName:@"张三"];
           [p setAge:25];
           [p setSex:kSexMan];
           [p setHeight:180.0f];
           //用getter方法访问成员变量
           NSLog(@"姓名:%@,年龄:%d,性别:%d,身高:%.2f",[p name],[p age],[p sex],[p height]);
       }
       return 0;
   }
注意:1)setter和getter方法均为对象方法





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2