//
// Kline.h
#import
@interface Kline : NSObject
{
int _max; // 最高价
int _min;// 最低价
int _average;// 平均价
}
/*
setter方法
/*
如果某一个属性只提供了getter方法, 没有提供setter方法, 我们称这个属性为只读属性
如果某一个属性只提供了setter方法, 没有提供getter方法, 我们称这个属性为只写属性
如果某一个属性同时提供了setter方法和getter方法, 我们称这个属性为可读可写的属性
如果某一个属性没有提供了getter和setter, 我们称这个属性为私有属性
*/
//- (void)setAverage:(int)average;
/*
getter方法
//
// 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
#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;
}
手机扫一扫
移动阅读更方便
你可能感兴趣的文章