getter-setter方法练习
//
// Kline.h #import <Foundation/Foundation.h> @interface Kline : NSObject
{
int _max; // 最高价
int _min;// 最低价
int _average;// 平均价
}
/*
setter方法
1. 一定是对象方法
2. 一定没有返回值
3. 方法名称一定以set开头, 后面跟上成员变量的名称并且去掉下划线, 然后首字母大写
4.一定有参数, 参数类型一定和成员变量一样, 参数名称就是成员变量的名称去掉下划线
*/
- (void)setMax:(int)max;
- (void)setMin:(int)min; /*
如果某一个属性只提供了getter方法, 没有提供setter方法, 我们称这个属性为只读属性
如果某一个属性只提供了setter方法, 没有提供getter方法, 我们称这个属性为只写属性
如果某一个属性同时提供了setter方法和getter方法, 我们称这个属性为可读可写的属性
如果某一个属性没有提供了getter和setter, 我们称这个属性为私有属性
*/
//- (void)setAverage:(int)average;
/*
getter方法
1. 一定是对象方法
2. 一定有返回值, 返回值类型和成员变量的类型一致
3. 方法名称就是成员变量的名称去掉下划线
4. 一定没有参数
*/
- (int)min;
- (int)max;
- (int)average; @end
//
// Kline.m #import "Kline.h" @implementation Kline - (void)setMax:(int)max
{
_max = max;
// self.max = 10;
// 每次重新设置最大值, 那么就重新计算平均值
_average = (_min + _max) / 2;
} - (void)setMin:(int)min
{
// setter方法还有一个好处: 监听属性的变化
_min = min;
// 每次重新设置最小值, 那么就重新计算平均值
_average = (_min + _max) / 2;
} - (void)setAverage:(int)average
{
_average = average;
} - (int)min
{
return _min;
} - (int)max
{
return _max;
} - (int)average
{
// NSLog(@"重新计算平均值");
//这个地方有性能问题,由于最大值和最小值可能没有发生变化,既然最大值和最小值没有发生变化,那么平均值就不需要重新计算
//只有最大值和最小值发生变化才需要重新计算
// return (_max + _min) / 2;
return _average;
}
@end
// main.m #import <Foundation/Foundation.h>
#import "Kline.h"
/*
设计一个K线类, 有三个属性, 最高价格, 最低价格, 平均价格. 要求可以设置和获取这三个属性
*/
int main(int argc, const char * argv[]) { // 1.创建K线类
Kline *line = [Kline new];
// 2.设置属性
[line setMax:200];
[line setMin:100];
// [kp setAverage:<#(int)#>]
// 3.获取属性的值
NSLog(@"min = %i, max = %i, average = %i", [line min], [line max], [line average]); [line average];
[line average];
[line average];
[line average];
return 0;
}
getter-setter方法练习的更多相关文章
- 反射工具类.提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class,被AOP过的真实类等工具函数.java
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.Validate; import org.ap ...
- android studio: 快捷键生成getter/setter方法时自动加m的问题
平时使用Android Studio 在写实体类的时候,习惯给实体类的成员变量前面加上一个"m" 修饰符表示这是一个成员变量,这也是搞java的一种约定俗成的写法,本来这是没有问题 ...
- getter/setter方法
1.setter方法 作用:用来设置成员变量,可以在方法里面过滤掉一些不合理的值 命名规范: 必须是对象方法 返回值类型为void 方法名必须以set开头,而且后面跟上成员变量名去掉"_&q ...
- Eclipse 设置生成带有属性注释的getter/setter方法
1. 在开发中,一般类注释常注释在字段上面.但eclipse工具自动生成的getter和setter方法是没有注释的,而且还需要自己手动添加,这样比较麻烦.下面介绍如何通过修改eclipse的jar ...
- 使用lombok注解@Getter @Setter方法代码编译成功,但是没有生成get,set方法
现象描述: 在对应类对象中,添加lombok的@Getter或@Setter注解,编译没有问题,但是在使用类对象时,没有出现对应的get或set方法. 配置且编译ok,但是没有对应的get或set方法 ...
- java中遍历类中的属性、调用getter&setter方法
public static void testReflect(Object model) throws NoSuchMethodException, IllegalAccessException, I ...
- Java-Ide快速创建getter&setter方法
1.右键 选择Generate 2.创建 类的equals方法
- Android Studio-设置override及getter/setter方法
默认是Alt+Insert,可以修改成与Eclipse保持一致,Alt+Shift+S
- 懒加载(getter\setter理解)
为什么要用懒加载 1.首先看一下程序启动过程:(如图) 会有一个mian的设置,程序一启动会加载main.storyboard main.storyboard又会加载箭头所指的控制器 控制器一旦加载, ...
- ARC以及MRC中setter方法
ARC以及MRC中setter方法的差异 有时候,你会需要重写setter或者getter方法,你知道么,ARC与MRC的setter方法是有着差异的呢. 先看下MRC下的setter方法: 在看下A ...
随机推荐
- Windows环境下使用Linux命令
1.说明 如何在Windows环境下使用Linux命令, 这是一个屡见不鲜的问题, 而且已经有很多解决方法, 下面仅推荐几个我觉得好用的工具, 这些工具可能就是我们常用的软件, 而且已经在Window ...
- 首次分享,大厂资深测试做Api接口自动化测试的关键思路都在这里了
引言 与UI相比,接口一旦研发完成,通常变更或重构的频率和幅度相对较小.因此做接口自动化的性价比更高,通常运用于迭代版本上线前的回归测试中. 手工做接口测试,测试数据和参数都可以由测试人员手动填写和更 ...
- Microsoft HoloLens 开发(1): 搭建 HoloLens 开发环境
1.硬件配置 64位 Windows 10 专业版, 企业版, or 教育版 (注: 家庭版不支持 Hyper-V 或者 HoloLens emulator) 64位 CPU 4核CPU (或者大于4 ...
- ORACLE 之 按月循环执行操作
DECLARE i number; BEGIN i:= 201705; WHILE i <202104 LOOP if i=201713 then i:=201801; elsif i=2018 ...
- Flask_蓝图Blueprint(十四)
什么是蓝图? 蓝图:用于实现单个应用的视图.模板.静态文件的集合. 蓝图就是模块化处理的类. 简单来说,蓝图就是一个存储操作路由映射方法的容器,主要用来实现客户端请求和URL相互关联的功能. 在Fla ...
- redis持久层设置
1.默认为RDB存储方式,每次修改数据库,需要输入指令save才会存入磁盘的dump.rdb文件里,相当于备份快照,下次开启服务后会自动缓存于内存里.当然,满足下面几个条件也会自动保存到磁盘:save ...
- Echart可视化学习(五)
文档的源代码地址,需要的下载就可以了(访问密码:7567) https://url56.ctfile.com/f/34653256-527823386-04154f 常见的数据可视化库: D3.js ...
- Eureka原理与架构
一.原理图 Eureka:就是服务注册中心(可以是一个集群),对外暴露自己的地址 提供者:启动后向Eureka注册自己信息(地址,提供什么服务) 消费者:向Eureka订阅服务,Eureka会将对应服 ...
- 论文翻译:2021_AEC IN A NETSHELL: ON TARGET AND TOPOLOGY CHOICES FOR FCRN ACOUSTIC ECHO CANCELLATION
论文地址:https://ieeexploreieee.53yu.com/abstract/document/9414715 Netshell 中的 AEC:关于 FCRN 声学回声消除的目标和拓扑选 ...
- 记一次 WinDbg 分析 .NET 某工厂MES系统 内存泄漏分析
一:背景 1. 讲故事 上个月有位朋友加微信求助,说他的程序跑着跑着就内存爆掉了,寻求如何解决,截图如下: 从聊天内容看,这位朋友压力还是蛮大的,话说这貌似是我分析的第三个 MES 系统了,看样子 . ...