小白学开发(iOS)OC_封装_成员变量(set get方法)(2015-07-24)
来源:互联网 发布:plc模块化编程实例 编辑:程序博客网 时间:2024/06/08 04:24
//
// main.m
// 封装(成员变量)
//
// Created by admin on 15/7/25.
// Copyright (c) 2015年 admin. All rights reserved.
// 这里主要介绍成员变量的封装,进而引出set和get方法
/*
1. 封装的目的:
同set方法封装属性,可以过滤掉一些不符合逻辑的数据,保证了我们数据的正确性
提高了代码的健壮性
2. 封装的好处:
将变化隔离
提高代码的重用性
提高了代码的安全性
*/
/*
3. 成员变量以下划线开头好处
> 可以和局部变量区分开来
> 可以和方法的参数区分开来
> 只要你打下划线就可以找到成员变量
> ios程序员都按照这个规则区写,提高了代码的阅读性
*/
#import <Foundation/Foundation.h>
#import "Gun.h"
int main(int argc, const char * argv[]) {
Gun *g = [Gun new];
/*
这里直接给成员变量赋值,而在声明的时候并非@public不能访问,会出现错误
*/
// g->_bulletCount = -20; // 而且像子弹数,如果直接赋值那么像-20这样的就是脏数据
// g->_color = kIcolorBlack;
// g->_modle = @"P8";
/*
下面通过set方法给成员变量赋值
*/
[g setBulletCount:-20];
[g setColor:kIcolorBlack];
[g setModle:@"iphone4"];
/*
下面通过get方法 取出成员变量的值
*/
IColor resultColor = [g color];
NSString *result = [g modle];
int resultCount = [g bulletCount];
NSLog(@"resultColor = %u", resultColor);
NSLog(@"result = %@", result);
NSLog(@"resultCount = %d", resultCount);
// 或者
NSLog(@"resultColor = %u", [g color]);
NSLog(@"result = %@", [g modle]);
NSLog(@"resultCount = %d", [g bulletCount]);
/*
注意: 在开发当中有时候只提供get方法,,该属性称之为只读属性
有时候只提供set方法,该属性就称之为只写属性
*/
return 0;
}
//
// Gun.h
//封装_成员变量
// main.m
// 封装(成员变量)
//
// Created by admin on 15/7/25.
// Copyright (c) 2015年 admin. All rights reserved.
// 这里主要介绍成员变量的封装,进而引出set和get方法
/*
1. 封装的目的:
同set方法封装属性,可以过滤掉一些不符合逻辑的数据,保证了我们数据的正确性
提高了代码的健壮性
2. 封装的好处:
将变化隔离
提高代码的重用性
提高了代码的安全性
*/
/*
3. 成员变量以下划线开头好处
> 可以和局部变量区分开来
> 可以和方法的参数区分开来
> 只要你打下划线就可以找到成员变量
> ios程序员都按照这个规则区写,提高了代码的阅读性
*/
#import <Foundation/Foundation.h>
#import "Gun.h"
int main(int argc, const char * argv[]) {
Gun *g = [Gun new];
/*
这里直接给成员变量赋值,而在声明的时候并非@public不能访问,会出现错误
*/
// g->_bulletCount = -20; // 而且像子弹数,如果直接赋值那么像-20这样的就是脏数据
// g->_color = kIcolorBlack;
// g->_modle = @"P8";
/*
下面通过set方法给成员变量赋值
*/
[g setBulletCount:-20];
[g setColor:kIcolorBlack];
[g setModle:@"iphone4"];
/*
下面通过get方法 取出成员变量的值
*/
IColor resultColor = [g color];
NSString *result = [g modle];
int resultCount = [g bulletCount];
NSLog(@"resultColor = %u", resultColor);
NSLog(@"result = %@", result);
NSLog(@"resultCount = %d", resultCount);
// 或者
NSLog(@"resultColor = %u", [g color]);
NSLog(@"result = %@", [g modle]);
NSLog(@"resultCount = %d", [g bulletCount]);
/*
注意: 在开发当中有时候只提供get方法,,该属性称之为只读属性
有时候只提供set方法,该属性就称之为只写属性
*/
return 0;
}
//
// Gun.h
//封装_成员变量
//
// Created by admin on 15/7/25.
// Copyright (c) 2015年 admin. All rights reserved.
//
#import <Foundation/Foundation.h>
typedef enum
{
kIcolorWhite,
kIcolorBlack
}IColor;
@interface Gun : NSObject
{
// @public 这里将成员变量设置成public类型,则表示成员变量对外界是公开的,不安全,所以一般不使用@public
// 为了解决这个问题,OC中对成员变量使用了set方法来给成员变量赋值,使用get方法将成员变量取出
int _bulletCount; // 子弹数
NSString *_modle; // 型号
IColor _color; // 颜色
NSString *_serial; // 序列号
}
/*
以下声明成员变量的set方法和get方法
*/
/*
1. set方法 格式: - (void)setBulletCount:(int)bulletCount;
> 它一定是对象方法,因为只有对象方法才能访问成员变量,而这里要将成员变量传入进行修改赋值
> 一定有返回值,且类型为void
> 一定以set开头,set后面跟上成员变量的名称去掉下划线,并且首字母大写
> 一定有参数,并且参数类型和成员变量类型一样,参数名称和成员变量名称去掉下划线相同
*/
- (void)setBulletCount:(int)bulletCount;
- (void)setModle:(NSString *)modle;
- (void)setColor:(IColor)color;
- (void)setSerial:(NSString *)serial;
/*
2. get方法 格式: - (int)bulletCount;
> 一定是对象方法
> 一定有返回值,因为这里要将值取出,并且返回值类型和成员变量类型一致
> 方法名和成员变量名去掉下划线一致
> 一定没有参数
*/
- (int)bulletCount;
- (NSString *)modle;
- (IColor)color;
- (NSString *)serial;
@end
//
// Gun.m
//封装_成员变量
//
// Created by admin on 15/7/25.
// Copyright (c) 2015年 admin. All rights reserved.
//
#import "Gun.h"
@implementation Gun
- (void)setBulletCount:(int)bulletCount
{
// 这里可以对成员变量做一些限制,过滤脏数据
if (bulletCount < 0) {
bulletCount = 0; // 如果子弹数小于0,那么为了不让子弹数变为负数,这里判断后赋值为0
}
_bulletCount = bulletCount;
}
- (int)bulletCount
{
return _bulletCount;
}
- (void)setModle:(NSString *)modle
{
_modle = modle;
}
- (NSString *)modle
{
return _modle;
}
- (void)setColor:(IColor)color
{
_color = color;
}
- (IColor)color
{
return _color;
}
- (void)setSerial:(NSString *)serial;
{
_serial = serial;
}
- (NSString *)serial
{
return _serial;
}
@end
]
// Created by admin on 15/7/25.
// Copyright (c) 2015年 admin. All rights reserved.
//
#import <Foundation/Foundation.h>
typedef enum
{
kIcolorWhite,
kIcolorBlack
}IColor;
@interface Gun : NSObject
{
// @public 这里将成员变量设置成public类型,则表示成员变量对外界是公开的,不安全,所以一般不使用@public
// 为了解决这个问题,OC中对成员变量使用了set方法来给成员变量赋值,使用get方法将成员变量取出
int _bulletCount; // 子弹数
NSString *_modle; // 型号
IColor _color; // 颜色
NSString *_serial; // 序列号
}
/*
以下声明成员变量的set方法和get方法
*/
/*
1. set方法 格式: - (void)setBulletCount:(int)bulletCount;
> 它一定是对象方法,因为只有对象方法才能访问成员变量,而这里要将成员变量传入进行修改赋值
> 一定有返回值,且类型为void
> 一定以set开头,set后面跟上成员变量的名称去掉下划线,并且首字母大写
> 一定有参数,并且参数类型和成员变量类型一样,参数名称和成员变量名称去掉下划线相同
*/
- (void)setBulletCount:(int)bulletCount;
- (void)setModle:(NSString *)modle;
- (void)setColor:(IColor)color;
- (void)setSerial:(NSString *)serial;
/*
2. get方法 格式: - (int)bulletCount;
> 一定是对象方法
> 一定有返回值,因为这里要将值取出,并且返回值类型和成员变量类型一致
> 方法名和成员变量名去掉下划线一致
> 一定没有参数
*/
- (int)bulletCount;
- (NSString *)modle;
- (IColor)color;
- (NSString *)serial;
@end
//
// Gun.m
//封装_成员变量
//
// Created by admin on 15/7/25.
// Copyright (c) 2015年 admin. All rights reserved.
//
#import "Gun.h"
@implementation Gun
- (void)setBulletCount:(int)bulletCount
{
// 这里可以对成员变量做一些限制,过滤脏数据
if (bulletCount < 0) {
bulletCount = 0; // 如果子弹数小于0,那么为了不让子弹数变为负数,这里判断后赋值为0
}
_bulletCount = bulletCount;
}
- (int)bulletCount
{
return _bulletCount;
}
- (void)setModle:(NSString *)modle
{
_modle = modle;
}
- (NSString *)modle
{
return _modle;
}
- (void)setColor:(IColor)color
{
_color = color;
}
- (IColor)color
{
return _color;
}
- (void)setSerial:(NSString *)serial;
{
_serial = serial;
}
- (NSString *)serial
{
return _serial;
}
@end
]
0 0
- 小白学开发(iOS)OC_封装_成员变量(set get方法)(2015-07-24)
- 小白学开发(iOS)OC_成员变量的作用域(2015-07-27)
- 小白学开发(iOS)OC_ set方法的内存管理分析(2015-08-04)
- 小白学开发(iOS)OC_类方法和对象方法(2015-07-22)
- 小白学开发(iOS)OC_继承(2015-07-26)
- 小白学开发(iOS)OC_多态(2015-07-27)
- 小白学开发(iOS)OC_私有方法(2015-07-28)
- 小白学开发(iOS)OC_构造方法(2015-07-29)
- IOS开发---OC语言-⑥封装(set、get)
- 小白学开发(iOS)OC_匿名对象(2015-07-24)
- 小白学开发(iOS)OC_组合模式(2015-07-24)
- 【Objective-C】04-OC对象成员变量的封装规范:get方法和set方法
- 封装,this,给成员变量赋值的方式(get(),构造方法):
- 小白学开发(iOS)OC_第一个OC (与C的区别)(2015-07-21)
- 小白学开发(iOS)OC_定义一个类(2015-07-21)
- 小白学开发(iOS)OC_类和对象(2015-07-22)
- 小白学开发(iOS)OC_面向对象总结(2015-07-25)
- 小白学开发(iOS)OC_类的本质(2015-07-27)
- lua 中ipairs 和 pairs 区别
- 动态规划---最长公共子序列
- 项目中的连接本地服务器以及JSON解析
- 【面试加分项】运行时多态与编译时多态
- Servlet 实现访问量的统计小案例
- 小白学开发(iOS)OC_封装_成员变量(set get方法)(2015-07-24)
- ACdream 1154 Lowbit Sum(数位DP)
- SDL游戏开发系列第一话:Hello SDL
- STM32是如何进入中断函数xxx_IRQHandler的
- hadoop2.7.0版本搭建伪分布式环境
- 1011. A+B和C (15)
- 数塔
- Objective-C面向对象-对象和类
- HttpURLConnection 下载