#import <Foundation.Foundation.h>

@interface Student : NSObject
{
     int _age;
     char *_name;
}
//声明set方法
- (void) setAge: (int)age;
- (void) setName: (char *) name;

//声明get方法
- (int)age;
- (char *) name;
@end

@implementation  Student
//实现set方法
- (void) setAge: (int)age
{
    if(age<18)
   { 
      age=20;
   }
     _age=age;
}
- (void) setName: (char *) name
{
    _name=name;
}

//实现get方法
- (int)age
{
   return _age;
}
- (char *) name
{
    return _name;
}
@end


int main()
{
      Student *stu=[Student new];
      //调用set方法赋值
      [stu setAge:20];
     //调用get方法取值
      NSLog(@"学生的年龄是:%d",[stu age]);
}

1.set方法作用:提供一个方法给外界设置成员变量的值,有一定的安全性

   set方法的命名规范:方法法必须以set开头,后面跟上成员变量的名称,并且成员变量的名称首字母大写

           一定要接收一个参数,参数类型跟成员变量的数据类型一致

           定义的形参名称不能跟成员变量名称一样

           返回值一定是void

2.get方法的作用:返回对象内部的成员变量的值

   get方法的命名规范:返回值类型必须和成员变量的数据类型一致

            方法名称一般跟成员名称一样

            没有形参

 

oc的弱语法:oc在运行的过程中才会去检查方法/类是否有实现。也就是说在方法/类没有的实现,有声明的时候,在编译链接期间是不会报error,仅发出warn,但是在运行时会报            错。

           若有方法/类的实现,没有声明时,在编译链接期间是不会报error,仅发出warn,并且在运行通过