本次总结oc中成员变量赋值赋值方法----settet、getter命名方法   点运算符

1.settet、getter命名方法

      为对象中的某个实例变量赋值的方法称为修改方法,用来修改对象的状态这类修改方法称为setter

      另外对应的取之方法称为getter

命名习惯

      -setter方法根据所更改的变量名称来命名      例如   变量名为age   则为setAge

      -getter方法根据所取得的变量名称来命名      例如   变量名为age,直接为age即可

2.点运算符命名方法

      点运算符在OC的类对象中不能访问成员变量,如student.age=5,这里不是使用成员变量age,而是调用成员方法setAge,相当于给student.age赋值时,调用方法[student setAge:5]。

      NSLog(@”%d”,student.age); 这里也不是使用成员变量age,而是调用成员方法age,使用student.age表达式的值时,实际上就是调用成员方法age,[student age]。

“. ”不能调用成员变量,只是调用set函数和get函数的一种简写。这里不能理解为,定义了get函数和set函数就能调用成员变量,因为将这两个函数,不以一般形式书写时,使用student.age时,就会报错。

创建一个student类,对类的对象进行赋值

 

main函数中

#import <Foundation/Foundation.h>

#import "Student.h"
int main(int argc, const char * argv[]) {

    @autoreleasepool {        Student *stu = [[Student alloc] init];
        stu.name = @“abc";//这个是点运算符
        [stu setName:@"老王"];
        [stu setAge:90];
        NSString *name = [stu name];
        NSLog(@"隔壁住着:%@",name);  
    }

    return 0;}
.h文件
#import <Foundation/Foundation.h>
@interface Student : NSObject{

    NSString *name;

    int      age;

}
//setter方法,用于赋值,格式:-(void)set变量名(首字母大写):(成员变量类型)形参名-(void)setName:(NSString *)newName;
//getter方法,用于取值,所以需要一个返回值,此返回值类型与成员变量类型保持一致,格式:-(成员变量类型)成员变量名
-(NSString *)name;
-(void)setAge:(int)age1;
-(int)age;
@end
.m文件
#import "Student.h"
@implementation Student
-(void)setName:(NSString *)newName{

    name = newName;}
-(NSString *)name{

    return name;}
-(void)setAge:(int)age1{

    if (age1 > 100 || age1 < 0) {             //用if条件进行一个判断

        NSLog(@"年龄不合理,请重新赋值");

    }else{

        age = age1;

    }}
-(int)age{

    return age;}
@end

 

最后说一下函数前的“+”与“-”

OC中常见函数名称前面常带有“+”和“-”,这里的加减号分别代表了不同的方法类型。

+ 代表 函数为类的函数,调用时用类名调用。

-  代表 函数为对象的函数,调用时需用对象调用。

类没有空间,没有成员变量的空间,类的方法不能使用对象的成员变量。