首页 > 移动平台 > 详细

iOS修炼之道:如何理解c类语言中的"."和"->"的作用

时间:2015-12-06 19:18:36      阅读:246      评论:0      收藏:0      [点我收藏+]

实例代码

//
//  main.m
//  AddressBook
//
//  Created by admin on 15/11/26.
//  Copyright © 2015年 admin. All rights reserved.
//

///////////////////fraction.h///////////////////

#import <Foundation/Foundation.h>

//-------- @interface Part  --------

@interface Fraction: NSObject
{
@public
    int numerator;
}

-(void) setNumerator: (int) n;
-(int) numerator;

@end


//--------- @implementation Part -----

@implementation Fraction

-(void) setNumerator:(int)n
{
    numerator = n;
}

-(int) numerator
{
    return numerator;
}
@end


//--------------    Program Part   ---------------
int main()
{
    @autoreleasepool {
        Fraction *myFraction = [[Fraction alloc] init];
        [myFraction setNumerator: 1];
        myFraction.numerator = 3;
        NSLog(@"numerator get is %i", myFraction.numerator);
        NSLog(@"numerator get is %i", myFraction->numerator);
        NSLog(@"numerator get is %i", [myFraction numerator]);
        
    }
    return 0;
}

 

OC中"."与"->"的区别

       OC中对象的操作都是通过指针调用实现的,所有的成员变量都可以通过"->"来获取。这要设置访问权限,默认的权限是保护的。

       “.”操作符在之前的OC版本中是没有的,为了适应JAVA/C++等程序员的使用习惯后来新加入的特性。"."在OC中实际上是方法的调用。注意这方法的调用,

       因此第49行和51行是等价的,numerator并不是成员变量而是一个22行定义的方法,因此不关心变量的权限。而五十行则是成员变量的访问。

       所以,在oc的点操作符就是方法的调用和成员变量不相干,因为我们定义的对象其实就是个被实例话的指针,如此理解就和c和c++的内容统一不会矛盾了。 

self.name=aName;//.语法放在等号左边相当于调用setter方法
NSLOg(@"%@",self.name);//.语法放在等号右边相当于调用getter方法

iOS修炼之道:如何理解c类语言中的"."和"->"的作用

原文:http://www.cnblogs.com/xunyue/p/5024033.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!