zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    关于android的一些博文收集
    关于Synchronized关键字锁住对象的嵌套问题
    eclipse个人觉得有用的快捷键
    关于android 数据库查询出现 _id column do not exist 的处理
    【转】经典网文:追MM与设计模式
    Maven学习总结(28)——Maven+Nexus+Myeclipse集成
    Spring MVC学习总结(9)——Spring MVC整合swagger自动生成api接口文档
    Windows学习总结(7)——学会CMD命令提示符的重要性
    ActiveMQ学习总结(10)——ActiveMQ采用Spring注解方式发送和监听
    SVN学习总结(3)——分支合并
  • 原文地址:https://www.cnblogs.com/xufengyuan/p/6543564.html
Copyright © 2011-2022 走看看