O-C相关05:方法的封装.
前言:在 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:方法的封装.的更多相关文章
- 【类库】私房干货.Net数据层方法的封装
[类库]私房干货.Net数据层方法的封装 作者:白宁超 时间:2016年3月5日22:51:47 摘要:继上篇<Oracle手边常用70则脚本知识汇总>文章的发表,引起很多朋友关注.便促使 ...
- Java方法的封装
类的封装性即不能让外面的类随意修改一个类的成员变量: 在定义一个类的成员(包括变量和方法),使用private关键字说明这个成员的访问权限,只能被这个类的其他成员方法调用,而不能被其他的类中的方法所调 ...
- Android View各种尺寸位置相关的方法探究
Android View各种尺寸位置相关的方法探究 本来想做一个View间的碰撞检测之类的. 动手做了才发现不是想象的那么简单. 首先,写好了碰撞检测的工具类如下: package com.mengd ...
- Dynamic CRM 2013学习笔记(二十三)CRM JS智能提示(CRM 相关的方法、属性以及页面字段),及发布前调试
我们知道在CRM的js文件里引用XrmPageTemplate.js后,就可以实现智能提示,但每个js文件都引用太麻烦了,其实可以利用vs的功能让每个js文件自动实现智能提示CRM的js: 另外,我们 ...
- jsp:和属性相关的方法,请求的转发,重定向
jsp中与属性相关的方法: 方法: void setAttribute(String name, Object o): 设置属性 Object getAttribute(String name):获取 ...
- Android音频焦点处理相关的方法
有这么一种场景:你打开qq音乐.优酷客户端.视频播放的时候.这个时候突然来电显示了,此时所有的MediaPlayer相关的服务或者响应都进入"休眠"状态.那么,这个功能是怎么实现的 ...
- Android+appium +python 点击坐标tap方法的封装
当常使用的查找点击元素的方法name.id.classname等无法使用时,我们将会采取坐标的点击来实现操作,同样存在一个问题,当手机的分辨率.屏幕大小不一致时,坐标的定位也会不同,因此将采用相对坐标 ...
- asp.net 重写URL方法和封装好的DLL
.net 重写URL方法和封装好的DLL URL重写方法DLL(2.0)
- Android开发教程 - 使用Data Binding Android Studio不能正常生成相关类/方法的解决办法
本系列目录 使用Data Binding(一)介绍 使用Data Binding(二)集成与配置 使用Data Binding(三)在Activity中的使用 使用Data Binding(四)在Fr ...
随机推荐
- Linux/U-Boot Git Repo
Linux: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git U-Boot: git://git.denx.de/ ...
- HW2.12
控制台: import java.util.Scanner; public class Solution { public static void main(String[] args) { Scan ...
- POJ3280 - Cheapest Palindrome(区间DP)
题目大意 给定一个字符串,要求你通过插入和删除操作把它变为回文串,对于每个字符的插入和删除都有一个花费,问你把字符串变为回文串最少需要多少花费 题解 看懂题立马YY了个方程,敲完就交了,然后就A了,爽 ...
- POJ2891 - Strange Way to Express Integers(模线性方程组)
题目大意 求最小整数x,满足x≡a[i](mod m[i])(没有保证所有m[i]两两互质) 题解 中国剩余定理显然不行....只能用方程组两两合并的方法求出最终的解,刘汝佳黑书P230有讲~~具体证 ...
- J2EE开发常用开源框架技术(转)
主要就我所了解的J2EE开发的框架或开源项目做个介绍,可以根据需求选用适当的开源组件进行开发.主要还是以Spring为核心,也总结了一些以前web开发常用的开源工具和开源类库 1持久层:1)Hiber ...
- HDU5643-King's Game
BestCoder上的题,直接贴网站上的题目和题解了.很棒的题. 问题描述为了铭记历史,国王准备在阅兵的间隙玩约瑟夫游戏.它召来了 n(1≤n≤5000) 个士兵,逆时针围成一个圈,依次标号 1,2, ...
- 无法通过 128 (在表空间 TEMP 中) 扩展 temp 段
1.查看表空间中数据文件存储的路径以及是否可以自动扩展 SELECT TABLESPACE_NAME, BYTES/1024/1024 FILE_SIZE_MB, FILE_NAME FROM DBA ...
- CSS定位(postion)和移动(float)
5.定位和移动:Positioning(定位)CSS定位属性允许你为一个元素定位.它也可以将一个元素放在另一个元素后面,并指定一个元素的内容太大时,应该发生什么. 元素可以使用的顶部,底部,左侧和右侧 ...
- weblogic目录结构
安装WEBLOGIC SERVER weblogic server 的目录结构 weblogic server的classpath变量 weblogic server使用命令行 通过管理控制台执行核心 ...
- SimpleDateFormat 转化毫秒到日期时,指定特定的时区
http://blog.csdn.net/wangpeng047/article/details/8560690 影响TimeZone的因素: 1. 操作系统的时区设置. 2. 数据传输时时区设置. ...