//
// 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方法练习的更多相关文章

  1. 反射工具类.提供调用getter/setter方法, 访问私有变量, 调用私有方法, 获取泛型类型Class,被AOP过的真实类等工具函数.java

    import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.Validate; import org.ap ...

  2. android studio: 快捷键生成getter/setter方法时自动加m的问题

    平时使用Android Studio 在写实体类的时候,习惯给实体类的成员变量前面加上一个"m" 修饰符表示这是一个成员变量,这也是搞java的一种约定俗成的写法,本来这是没有问题 ...

  3. getter/setter方法

    1.setter方法 作用:用来设置成员变量,可以在方法里面过滤掉一些不合理的值 命名规范: 必须是对象方法 返回值类型为void 方法名必须以set开头,而且后面跟上成员变量名去掉"_&q ...

  4. Eclipse 设置生成带有属性注释的getter/setter方法

    1.  在开发中,一般类注释常注释在字段上面.但eclipse工具自动生成的getter和setter方法是没有注释的,而且还需要自己手动添加,这样比较麻烦.下面介绍如何通过修改eclipse的jar ...

  5. 使用lombok注解@Getter @Setter方法代码编译成功,但是没有生成get,set方法

    现象描述: 在对应类对象中,添加lombok的@Getter或@Setter注解,编译没有问题,但是在使用类对象时,没有出现对应的get或set方法. 配置且编译ok,但是没有对应的get或set方法 ...

  6. java中遍历类中的属性、调用getter&setter方法

    public static void testReflect(Object model) throws NoSuchMethodException, IllegalAccessException, I ...

  7. Java-Ide快速创建getter&setter方法

    1.右键 选择Generate 2.创建 类的equals方法

  8. Android Studio-设置override及getter/setter方法

    默认是Alt+Insert,可以修改成与Eclipse保持一致,Alt+Shift+S

  9. 懒加载(getter\setter理解)

    为什么要用懒加载 1.首先看一下程序启动过程:(如图) 会有一个mian的设置,程序一启动会加载main.storyboard main.storyboard又会加载箭头所指的控制器 控制器一旦加载, ...

  10. ARC以及MRC中setter方法

    ARC以及MRC中setter方法的差异 有时候,你会需要重写setter或者getter方法,你知道么,ARC与MRC的setter方法是有着差异的呢. 先看下MRC下的setter方法: 在看下A ...

随机推荐

  1. 云南农职《JavaScript交互式网页设计》 综合机试试卷⑥——简易旅游网

    本页面分为顶部导航.登录注册栏,中部图片展示.主体内容和底部反馈模板 一.导航栏部分 要求一:设置菜单栏(二级菜单)和登录注册模块 要求二:当鼠标悬停到菜单栏(一级菜单)时,二级菜单以滑动效果滑出显示 ...

  2. 编写Java程序,通过给定可变参数方法,计算任意给定的多个int类型数据之和

    返回本章节 返回作业目录 需求说明: 通过给定可变参数方法,计算任意给定的多个int类型数据之和. 实现思路: 定义可变形参方法,参数类型是int类型. 定义变量 sum 接受最终的和. 通过 for ...

  3. 图解四种 IO 模型

    最近越来越认为,在讲解技术相关问题时,大白话固然很重要,通俗易懂,让人有想读下去的欲望.但几乎所有的事,都有两面性,在看到其带来好处时,不妨想想是否也引入了不好的地方. 例如在博客中,过于大白话的语言 ...

  4. c# - 数据类型转换和控制台输入

    1.使用c#自带的 Convert类转换数据类型 2.源码 using System; namespace ConsoleApp1.toValue { class excutejiecheng { s ...

  5. CentOS7中安装pip的方法

    1.安装epel-release [root@localhost ~]# yum -y install epel-release 2.安装python-pip [root@localhost ~]# ...

  6. Python常用功能函数系列总结(三)

    本节目录 常用函数一:词频统计 常用函数二:word2vec 常用函数三:doc2vec 常用函数四:LDA主题分析 常用函数一:词频统计 # -*- coding: utf-8 -*- " ...

  7. 2022 跳槽涨薪必不可少面试通关宝典 —— css 篇

    生于忧患死于安乐!已经居家隔离 23 天了,解封以后估计就得找工作了,提前准备起来!需要的赶紧收藏起来 一.谈谈你对 BFC 的理解及作用. BFC 是 Block Formatting Contex ...

  8. k个鸡蛋从N楼层摔,如果确定刚好摔碎的那个楼层,最坏情况下最少要试验x次?

    题目 k个鸡蛋从N楼层摔,如果确定刚好摔碎的那个楼层,最坏情况下最少要试验x次? 换个说法: k个鸡蛋试验x次最多可以检测N层楼.计算出N? 逆向思维和数学公式解. 分析 定义N(k,x) 如果第k个 ...

  9. 《剑指offer》面试题45. 把数组排成最小的数

    问题描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.   示例 1: 输入: [10,2] 输出: "102" 示例 2: 输入: ...

  10. 《剑指offer》面试题61. 扑克牌中的顺子

    问题描述 从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的.2-10为数字本身,A为1,J为11,Q为12,K为13,而大.小王为 0 ,可以看成任意数字.A 不能视为 14. 示例 ...