八天学会OC

第04天OC语言(02):property基本使用

2017-07-21  本文已影响18人  liyuhong
须读:看完该文章你能做什么?

property的使用

学习前:你必须会什么?(在这里我已经默认你具备C语言的基础了)

什么是setter、getter方法


一、本章笔记
 @property 是一个编译器指令
 在Xcode4.4之前, 可以使用@property 来代替 getter / setter方法的声明
 也就是说我们 只需要写上@property 就不用写getter / setter方法的声明
 编译器只要看到 @property, 就知道我们要生成某一个属性的 getter/setter方法的声明
 
 @property int age;
 等同于👇
 1.定义变量
 {
 int _age;
 }
 2.声明setter 和 getter方法
 - (void)setAge:(int)age;
 - (int)age;
二、code
main.m
######main.m
#pragma mark 02-property基本使用
#pragma mark - 代码
#import <Foundation/Foundation.h>
#pragma mark 类
#import "Person.h"
#pragma mark - main函数
int main(int argc, const char * argv[])
{
    Person *p = [Person new];
    [p setAge:22];
    [p age];
    
    [p set_age:22];
    [p _age];
    return 0;
}

Person
>>>.h
#import <Foundation/Foundation.h>

@interface Person : NSObject
{
//    int _age;
    double _height;
    double _weight;
    NSString *_name;
}
@property int age;
@property int _age; // 这样格式不符合规范 并且证明 系统是如何生成setter和getter方法的
/*
 - (void)set_age:(int)age;
 - (int)_age
 */


#pragma mark @property
/*
 @property 是一个编译器指令
 在Xcode4.4之前, 可以使用@property 来代替 getter / setter方法的声明
 也就是说我们 只需要写上@property 就不用写getter / setter方法的声明
 编译器只要看到 @property, 就知道我们要生成某一个属性的 getter/setter方法的声明
 
 @property int age;
 等同于👇
 1.定义变量
 {
    int _age;
 }
 2.声明setter 和 getter方法
 - (void)setAge:(int)age;
 - (int)age;
 */



#pragma mark getter - setter
/*
 setter:
 作用 : 用于给成员变量赋值
 1. 一定是对象方法
 2. 一定没有返回值
 3. 方法名称以set开头, 后面跟上需要赋值成员变量名称,并且去掉下划线,然后首字母大写
 4.一定有参数,参数类型 和 需要赋值的成员变量一致, 参数名称 就是 需要赋值的成员变量名称去掉下滑线
 */
//- (void)setAge:(int)age;
- (void)setHeight:(double)height;
- (void)setWeight:(double)weight;
- (void)setName:(NSString *)name;
/*
getter:
 作用: 用于获取成员变量的值
 1.一定是对象方法
 2.一定有返回值,返回值类型 和 需要获取的成员变量的类型 一致
 3.方法名称 就是 需要获取的成员变量的名称 去掉下划线
 4.一定没有参数
 */
//- (int)age;
- (double)height;
- (double)weight;
- (NSString *)name;


@end

>>>.m
#import "Person.h"

@implementation Person


//- (void)setAge:(int)age
//{
//    _age = age;
//}
- (void)setHeight:(double)height
{
    _height = height;
}
- (void)setWeight:(double)weight
{
    _weight = weight;
}
- (void)setName:(NSString *)name
{
    _name = name;
}

//- (int)age
//{
//    return _age;
//}
- (double)height
{
    return _height;
}
- (double)weight
{
    return _weight;
}
- (NSString *)name
{
    return _name;
}

@end
上一篇下一篇

猜你喜欢

热点阅读