前言:在 OC 中进行封装, 就是实现设置实例变量和获取实例变量数据的方法, 常常称为 setter 方法和 getter 方法. 或称为 get set 读写器.

1,setter
方法

setter 方法又叫设置器, 是为实例变量对外提供的统一访问规则, 用于设置实例变量的值. 一般在开发中, 禁止将实例变量直接暴露到外面. 通过 setter 方法可以为赋值操作进行必要的控制与筛选. 起到了封装和控制的作用.

规则:

1)方法名必须以 set 开头, 然后跟上实例变量的名字(无下划线)

2)使用骆驼命名规则

3) 接收一个参数, 用于为实例变量初始化

4)返回 void 类型

5)setter 是实例方法

2,getter 方法

getter 方法又叫读取器, 是用来在外访问成员变量的统一方法.

规则:

1)getter 返回与相关成员变量一致的类型数据

2)getter 没有参数

3)getter 方法的名字需要与实例变量名同名(无下划线)

3.附上一个小例子:公有三个文件:main.m    person.h       person.m:

main.m

//  stter,getter应用

//

//  Created by wanghy on 15/8/3.

//  Copyright (c) 2015年 wanghy. All rights reserved.

//

#import <Foundation/Foundation.h>

#import "person.h"

int main(int argc,
const char * argv[]) {

@autoreleasepool {

person * p = [[person alloc] init];

[p setName: @"张三"];

[p setAge:13 ];

[p setGender:@"男"];

NSLog(@"\n%@\n%@\n%d",[p name],[p gender],[p age]);

}

}

//  person.h

//  my first_objective-c_program

//

//  Created by wanghy on 15/8/3.

//  Copyright (c) 2015年 wanghy. All rights reserved.

//

#import <Foundation/Foundation.h>

//定义一个 person

@interface person : NSObject

{

@private

NSString * _name;

int _age;

NSString * _gender;

}

//封装属性: 
设置各个属性的setter方法。

-(void)setName:(NSString * )name;

-(void)setAge:(int )age;

-(void)setGender:(NSString * )gender;

//封装输出:设置get方法

-(NSString *)name;

-(int)age;

-(NSString *)gender;

@end

//  person.m

//  my first_objective-c_program

//

//  Created by wanghy on 15/8/3.

//  Copyright (c) 2015年 wanghy. All rights reserved.

//

#import "person.h"

//1.实现姓名,性别,年龄的封装

@implementation person

-(void)setName:(NSString * )name

{

_name = name;

}

//2.年龄
当人的年龄大于等于18岁时才能输入年龄。否则为空。

-(void)setAge:(int )age

{

if (age>=18) {

_age = age ;

}

}

//3.性别
如果输入的不是男人或者女人就无法输入进去。值为空,用 if
判断。

-(void)setGender:(NSString * )gender

{

if ([gender isEqualToString:@"男"] || [gender isEqualToString:@"女"])
{

_gender =gender;

}

}

//定义实例变量的封装。

-(NSString *)name

{

return _name ;

}

-(int )age

{ return _age ;

}

-(NSString * )gender

{

return _gender;

}

@end

版权声明:本文为博主原创文章,未经博主允许不得转载。

O-C相关05:方法的封装.的更多相关文章

  1. 【类库】私房干货.Net数据层方法的封装

    [类库]私房干货.Net数据层方法的封装 作者:白宁超 时间:2016年3月5日22:51:47 摘要:继上篇<Oracle手边常用70则脚本知识汇总>文章的发表,引起很多朋友关注.便促使 ...

  2. Java方法的封装

    类的封装性即不能让外面的类随意修改一个类的成员变量: 在定义一个类的成员(包括变量和方法),使用private关键字说明这个成员的访问权限,只能被这个类的其他成员方法调用,而不能被其他的类中的方法所调 ...

  3. Android View各种尺寸位置相关的方法探究

    Android View各种尺寸位置相关的方法探究 本来想做一个View间的碰撞检测之类的. 动手做了才发现不是想象的那么简单. 首先,写好了碰撞检测的工具类如下: package com.mengd ...

  4. Dynamic CRM 2013学习笔记(二十三)CRM JS智能提示(CRM 相关的方法、属性以及页面字段),及发布前调试

    我们知道在CRM的js文件里引用XrmPageTemplate.js后,就可以实现智能提示,但每个js文件都引用太麻烦了,其实可以利用vs的功能让每个js文件自动实现智能提示CRM的js: 另外,我们 ...

  5. jsp:和属性相关的方法,请求的转发,重定向

    jsp中与属性相关的方法: 方法: void setAttribute(String name, Object o): 设置属性 Object getAttribute(String name):获取 ...

  6. Android音频焦点处理相关的方法

    有这么一种场景:你打开qq音乐.优酷客户端.视频播放的时候.这个时候突然来电显示了,此时所有的MediaPlayer相关的服务或者响应都进入"休眠"状态.那么,这个功能是怎么实现的 ...

  7. Android+appium +python 点击坐标tap方法的封装

    当常使用的查找点击元素的方法name.id.classname等无法使用时,我们将会采取坐标的点击来实现操作,同样存在一个问题,当手机的分辨率.屏幕大小不一致时,坐标的定位也会不同,因此将采用相对坐标 ...

  8. asp.net 重写URL方法和封装好的DLL

    .net 重写URL方法和封装好的DLL URL重写方法DLL(2.0)

  9. Android开发教程 - 使用Data Binding Android Studio不能正常生成相关类/方法的解决办法

    本系列目录 使用Data Binding(一)介绍 使用Data Binding(二)集成与配置 使用Data Binding(三)在Activity中的使用 使用Data Binding(四)在Fr ...

随机推荐

  1. Codeforces 439 A. Devu, the Singer and Churu, the Joker

    这是本人第一次写代码,难免有点瑕疵还请见谅 A. Devu, the Singer and Churu, the Joker time limit per test 1 second memory l ...

  2. [POJ3684]Physics Experiment

      Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 1363   Accepted: 476   Special Judge ...

  3. [洛谷1580]yyy loves Easter_Egg I

    题目背景 Soha的出题效率着实让人大吃一惊.OI,数学,化学的题目都出好了,物理的题还没有一道.于是,Huntfire,absi2011,lanlan对soha进行轮番炸,准备炸到soha出来,不料 ...

  4. spoj 8222 Substrings(后缀自动机+DP)

    [题目链接] http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=28005 [题意] 给一个字符串S,令F(x)表示S的所有长度为 ...

  5. Android: Dragging Popup Window 可移动浮动View

    final View cv = new View(this); setContentView(cv); TextView tv = new TextView(this); tv.setBackgrou ...

  6. 北京Uber优步司机奖励政策(2月3日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  7. poj 3984 迷宫问题【bfs+路径记录】

    迷宫问题 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10103   Accepted: 6005 Description ...

  8. HTML的id,name,class

    HTML中的id是给JavaScript用的(document.getElementById()) HTML中的name是给JavaScript用的(formUploadFile.submit()) ...

  9. TOR的使用

    使用步骤: 1.配置,该计算机是否需要通过代理访问互联网?选否 2.该计算机的防火墙是否仅允许特定端口的互联网连接?选否 3.互联网服务提供商(ISP)是否对Tor网络连接进行了封锁或审查?选是 4. ...

  10. vijos 1464 NOIP 1997 积木游戏

    背景 1997年全国青少年信息学(计算机)奥林匹克竞赛试题 第二试 描述 积木游戏 SERCOI 最近设计了一种积木游戏.每个游戏者有N块编号依次为1 ,2,…,N的长方体积木.对于每块积木,它的三条 ...