博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OC的基础语法(三)
阅读量:5297 次
发布时间:2019-06-14

本文共 2405 字,大约阅读时间需要 8 分钟。

1.类方法的概述以及注意事项

/*  类方法的使用注意: 1)类方法可以和对象方法同名,他们的调用互不影响 2)对象只能调用对象方法,类只能调用类方法 3)类方法也应该在@interface @end 声明,在@implementation  @end之间去实现   关于类方法使用易犯的错误 1)在类方法中使用了成员变量(不允许的) 2) 在类方法中又调用了自己,则该方法就会陷于一个无线循环状态  */

2.类方法和对象方法的关系

/*   类方法:     1) 以+ 开头定义的方法    2) 用类名来调用    3) 类方法中,不能访问成员变量    4) 类方法中 能调用其他对象方法,需要满足以下两个条件         1) 对象作为方法的参数传递过来        2)在类方法中创建新的对象        类方法中,调用自己类的对象方法         1) 把当前的类对象作为方法的参数传递过来        2)在类方法中,创建一个新的实例对象,调用本类的方法     对象方法:      1) 以 - 开头,定义的方法    2) 以对象名来调用    3) 对象方法中,可以访问成员变量    4) 在对象方法中 能 能调用类方法  */

3.封装

/*    封装的核心思想:        把复杂的数据操作隐藏起来,对外只提供接口    原理:        定义对象方法 去访问对象的成员变量     不封装的缺点:        对象失去了对对象的成员变量的管理权    封装的步骤:        1)定义设置成员变量的对方方法(setter)-写方法           规范:          (1)必须是一个对象方法          (2)方法名必须以set开头          (3)必须是set+成员变量去掉下划线首字母大写           (4) 必须没有返回值           (5) 必须有一个参数          (6)参数的类型必须和成员变量的类型一致           (7) 形参名 一般情况下 是成员变量去掉下划线部分          (8) set方法的实现必须是给成员变量赋值                 格式:成员变量  =  形参变量                  float _money                //这样就封装了一个对 _money 设置值得一个方法               -(void)setMoney:(float) money;                 //实现               -(void)setMoney:(float) money{                     _money = money;               }        2)获取对象的成员变量(getter)值 --- 读方法            规范:           (1)必须是一个对象方法           (2)必须有返回值,反回值类型必须和成员变量的类型一致            (3) 方法名是 成员变量 去掉下划线部分            (4) 方法一定没有参数            (5) 必须返回成员变量              -(float)money;              -(float)money{                return _money;            } */

代码如下:

main.m

#import 
#import "Person.h"int main(int argc, const char * argv[]) { @autoreleasepool { Person *p = [Person new]; [p setMoney:-12.3f]; NSLog(@"%.2f",[p money]); } return 0;}

Person.h

#import 
@interface Person : NSObject{ float _money;}-(void)giveMoney:(float) money;//封装对_money操作的方法//设置_money值的方法(setter)-(void)setMoney:(float) money;//封装获取_money值得方法-(float)money;@end

Person.m

#import "Person.h"@implementation Person-(void)giveMoney:(float) money{    //做一个判断,如果钱是负数,不再设定    if(money>0){                _money = money;                NSLog(@"money:%.2f",_money);    }}-(void)setMoney:(float) money{    //设定成员变量值    //成员变量 = 形参变量    if (money>0) {        _money = money;    }    }//封装获取_money值得方法-(float)money{    //返回成员变量的值    return _money;}@end

 

转载于:https://www.cnblogs.com/iosnds/p/4884274.html

你可能感兴趣的文章
ubuntu 18.04取消自动锁屏以及设置键盘快捷锁屏
查看>>
Oracle 初始化参数 二三事,随记
查看>>
三维凸包模板
查看>>
zoj 2432(最长递增上升子序列)
查看>>
uva 10791
查看>>
JD路径配置及myeclipse主题和提示设置
查看>>
React 避免重渲染
查看>>
对象与包装类:ps踩过的写博客的坑,长记性
查看>>
【SAP业务模式】之ICS(六):发票输出类型
查看>>
powerdesigner从EXCEL读入数据
查看>>
UOJ #131 【NOI2015】 品酒大会
查看>>
CNN的学习笔记
查看>>
【论文学习】YOLO9000: Better,Faster,Stronger(YOLO9000:更好,更快,更强)
查看>>
全文索引FULLTEXT 的使用
查看>>
代码折叠
查看>>
Ubuntu通过apt-get安装指定版本和查询指定软件有多少个版本
查看>>
Ubuntu 16.04安装Ubuntu After Install工具实现常用软件批量安装
查看>>
CentOS Ubantu linux中设置history历史命令显示命令执行时间
查看>>
Android背景渐变色(shape,gradient)
查看>>
设计模式之装饰者模式
查看>>