oc-16-set,get方法

S.h

#import <Foundation/Foundation.h>
/**
 解决方案:
 1.不用@public修饰
 2.我们对象有访问和设置成员变量的两种操作
 1>设置值
 p->age = 10;
 2>访问值
 NSLog(@"%d",p->age);
 
 现在要提供两个方法来进行设置值和访问值
 1>设置成员变量
 约定的格式:
 - (void)set成员变量名(去掉下划线,首字母大写):(成员变量数据类型)成员变量名(去掉下划线);
 - (void)setAge:(int)age;
 
 2>访问成员变量
 约定的格式:
 - (成员变量数据类型)成员变量名(去掉下划线);
 - (int)age;
 */

//.h文件时暴露在外面的,.m文件是隐藏的。

@interface Student : NSObject
{
    int _age;  // 年龄,成员变量又下划线,局部变量没有下划线。
    NSString *_name; //名字
}
// 提供年龄的设置和访问的方法
- (void)setAge:(int)age;
- (int)age;

// 设置和访问名字的方法
- (void)setName:(NSString *)name;
- (NSString *)name;
@end

S.m

#import "Student.h"

@implementation Student

// 提供年龄的设置和访问的方法
- (void)setAge:(int)age
{
    if (age > 0 && age < 120) {
        _age = age;
    }else{
//        age = 20;
        _age = 20;
    }
}

- (int)age
{
    return _age;
}


// 设置和访问名字的方法
// 比较两个字符串是否相同 - (BOOL)isEqualToString:(NSString *)aString;
- (void)setName:(NSString *)name
{
    
    if ([name length] > 2) {
        if ([name isEqualToString:@"D大调"] ||[name isEqualToString:@"D大调方法"]) {
            _name = @"佚名";
            
        }else{
            _name = name;
        }
    }
    else
    {
        NSLog(@"请重新输入!");
    }
    
}
- (NSString *)name
{
    return _name;
}
@end

 

posted @ 2016-03-22 23:52  无天666  阅读(247)  评论(0编辑  收藏  举报