• O-C相关05:方法的封装.



          前言:在 OC 中进行封装, 就是实现设置实例变量和获取实例变量数据的方法, 常常称为 setter 方法和 getter 方法. 或称为 get set 读写器.

     1,setter 方法

     

    setter 方法又叫设置器, 是为实例变量对外提供的统一访问规则, 用于设置实例变量的值. 一般在开发中, 禁止将实例变量直接暴露到外面. 通过 setter 方法可以为赋值操作进行必要的控制与筛选. 起到了封装和控制的作用.

     

    规则:

    1)方法名必须以 set 开头, 然后跟上实例变量的名字(无下划线)

    2)使用骆驼命名规则

    3) 接收一个参数, 用于为实例变量初始化

    4)返回 void 类型

    5)setter 是实例方法

     

    2,getter 方法

     

    getter 方法又叫读取器, 是用来在外访问成员变量的统一方法.

     

    规则:

    1)getter 返回与相关成员变量一致的类型数据

    2)getter 没有参数

    3)getter 方法的名字需要与实例变量名同名(无下划线)

    3.附上一个小例子:公有三个文件:main.m    person.h       person.m:

    main.m

    //  stter,getter应用

    //

    //  Created by wanghy on 15/8/3.

    //  Copyright (c) 2015 wanghy. All rights reserved.

    //



    #import <Foundation/Foundation.h>

    #import "person.h"

    int main(int argc, const char * argv[]) {

     @autoreleasepool {

         

         person * p = [[person alloc] init];

         

         

         [p setName: @"张三"];

         [p setAge:13 ];

         [p setGender:@""];

         

         NSLog(@" %@ %@ %d",[p name],[p gender],[p age]);

        

        }


    }


    //  person.h

    //  my first_objective-c_program

    //

    //  Created by wanghy on 15/8/3.

    //  Copyright (c) 2015 wanghy. All rights reserved.

    //


    #import <Foundation/Foundation.h>



    //定义一个 person

    @interface person : NSObject

    {

        @private

        NSString * _name;

        int _age;

        NSString * _gender;

    }


    //封装属性:  设置各个属性的setter方法。

    -(void)setName:(NSString * )name;

    -(void)setAge:(int )age;

    -(void)setGender:(NSString * )gender;


    //封装输出:设置get方法

    -(NSString *)name;

    -(int)age;

    -(NSString *)gender;



    @end



    //  person.m

    //  my first_objective-c_program

    //

    //  Created by wanghy on 15/8/3.

    //  Copyright (c) 2015 wanghy. All rights reserved.

    //


    #import "person.h"


    //1.实现姓名,性别,年龄的封装

    @implementation person

    -(void)setName:(NSString * )name

    {

        _name = name;

    }


    //2.年龄 当人的年龄大于等于18岁时才能输入年龄。否则为空。

    -(void)setAge:(int )age

    {

        if (age>=18) {

            _age = age ;

        }

        

    }

    //3.性别 如果输入的不是男人或者女人就无法输入进去。值为空,用 if 判断。

    -(void)setGender:(NSString * )gender

    {

        if ([gender isEqualToString:@""] || [gender isEqualToString:@""]) {

            _gender =gender;

        }

        

    }

    //定义实例变量的封装。

    -(NSString *)name

    {

        return _name ;

        

        }

    -(int )age

    { return _age ;

        

    }

    -(NSString * )gender

    {

        return _gender;

    }

    @end


     

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    手动卸载 SQL Server 2005 Express
    标准正态分布函数数值表
    SQL Server, Error converting data type nvarchar to int
    如何修改windows XP的默认字体?
    C# 字符串格式化
    跨域cookie访问 Easy Cross Domain Cookies (Sharing cookies between domains)
    25_Android_网络通信之资讯客户端(下)
    毕业设计经验总结
    数学之路(2)四大神器haskell(28)
    java.lang.RuntimeException: Invalid action class configuration that references an unknown class name
  • 原文地址:https://www.cnblogs.com/wahy/p/4817241.html
Copyright © 2020-2023  润新知