Iphone开发(3) obC特有的get,set模式

不知道从什么时候开始,我们的面向对象编程规范已经不希望我们直接访问实例对象,而是通过get,set方法。在Java里面,比如有一个属性name,那么,一般会把这个属性设置为private的,然后通过getName,setName来访问和修改name。

        在obC里面,我似乎看到了更加优雅的实现。

1.在接口里面通过@property来设定需要实现get,set方法的实例

    2.在实现文件中通过@synthesize来实现接口中的注解

   3.在使用中直接通过[对象.属性]的方式访问和修改属性。


   以下是例子:


   Fraction.h

//
//  Fraction.m
//  first
//
//  Created by coding on 12-2-19.
//  Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
//

#import "Fraction.h"

@implementation Fraction

//实现get,set方法
@synthesize numerator,denominator;

-(void) print
{
    NSLog(@"%i/%i",numerator,denominator);
}

-(void) set:(int)_numerator :(int)_denominator
{
    numerator = _numerator;
    denominator = _denominator;
}

@end

    Fraction.m

//
//  Fraction.m
//  first
//
//  Created by coding on 12-2-19.
//  Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
//

#import "Fraction.h"

@implementation Fraction

//实现get,set方法
@synthesize numerator,denominator;

-(void) print
{
    NSLog(@"%i/%i",numerator,denominator);
}

-(void) set:(int)_numerator :(int)_denominator
{
    numerator = _numerator;
    denominator = _denominator;
}

@end

  调用类:

//
//  main.m
//  first
//
//  Created by coding on 12-2-19.
//  Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
//

#import <Foundation/Foundation.h>
#include "Fraction.h"
int main (int argc, const char * argv[])
{

    @autoreleasepool {
        
        Fraction *myFraction;   
        myFraction = [Fraction new];
        
        
        myFraction.numerator = 1;
        myFraction.denominator =3;
        [myFraction print];
        
        
        [myFraction set:1 :3];
        [myFraction print];
    }
    return 0;
}

//方法的调用语法:[ClassOrInstance method];

   注意里面有一个多参数的方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值