oc的点语法详解

oc学习初期,想必大家都在头文件中声明变量,然后自己去设置这些变量的属性的setter与getter吧,如果是学习Java出身的童鞋一定不会忘了在eclipse中自动设置setter与getter方法吧!哈哈,那么,oc中有没有什么方案让我们也像Java一样不用我们去设置,直接去使用呢?答案是肯定的,也许oc是方便学习其他语言的同学转向oc语言,特地为他们设置的一个语法格式—-点语法。

在oc中定义setter与getter其实是有严格要求的,如下:
setter和getter
【setter】set方法,用于给成员变量赋值,
如-(void)setHeight:(int)heightNew
原因:为了防止别人给你的成员变量乱赋值,
函数规范:
1.没有返回值
2.命名规范方法名必须以set开头,后面跟上成员变量的名称.
3.成员变量的名称首字母必须大写,
【getter】get方法,用于返回成员变量的值,如height
- (int)height
原因:别人想看到我们的成员变量,但是我们又不想让他乱改我们的成员变量
函数规范:
1.有返回值
2.值的类型就是成员变量的类型一样
3.方法名和成员变量名一样

    参数规范:1.一定要有一个参数,而且和成员变量类型一致,
    2.参数名和成员变量名不能一致
点语法的使用格式如下:
//
//  Dog.h
//  点语法
//
//  Created by qianfeng on 15/8/6.
//  Copyright (c) 2015年 Lee. All rights reserved.
//

#import 

@interface Dog : NSObject{
    int _age;
}

//-(void) setAge:(int) newAge;
//
//-(int) age;

@property int age;

@end
//
//  Dog.m
//  点语法
//
//  Created by qianfeng on 15/8/6.
//  Copyright (c) 2015年 Lee. All rights reserved.
//

#import "Dog.h"

@implementation Dog
@synthesize age = _age;
//该行等于以下的六行
//-(void) setAge:(int) newAge{
//    _age = newAge;
//}
//
//-(int) age{
//    return _age;
//}

@end

在使用点语法的时候记住一点,如果出现在赋值左边也就是 Dog.age = 21; 指的是赋值,如果出现在赋值右边也就是 int age = Dog.age; 指的是取值。
注意:
点操作不是使用成员变量,是调用成员方法

你可能感兴趣的:(objective-c学习)