类的定义和实现

1.类的定义

 在类的定义中,关键字为 interface ,关键字后面为类名,类名一般情况下首字母大写 冒号后面 NSObject 是父类 

命名时要见名知意

大驼峰命名:命名时每个单词的首字母大写 一般用于类的命名

小驼峰命名:第一个单词首字母小写,以后每个单词的首字母大写,一般用于实例变量和参数的命名

(-)对象方法(实例方法):对象方法只能给对象调用,不能给类调用

(+)类方法:只能给类调用,不能给对象调用

@interface Student : NSObject//类名的首字母大写,以后每个单词的首字母大写
{
    //类似于结构体
    // 实例变量的定义 ,命名通常以_开头,第一个单词的首字母小写,以后每个单词的首字母写
    // 实例变量必须包含在大括号内
    NSString *_name ; //NSString 是 OC 系统提供的字符串类
    NSInteger _age ; // NSInteger 是 long 类型
    
}
//构造方法(初始化方法)
//id 类似于 C语言中的 void *
// - 说明该方法是一个对象方法(实例方法):实例方法就是给类的实例调用的方法
// 该方法无传入参数
// 返回值是一个id(范型)类型的对象 方法名是 init
-(id)init ;

//setter 方法:修改实例变量值的方法
//有一个传入参数 name
//无返回值
//方法名 setName :
-(void)setName : (NSString *) name ;
-(void)setAge : (NSUInteger) age ;
//有两个传入参数 name age
//无返回值
//方法名是 setName:andAge:
-(void)setName : (NSString *)name andAge :(NSInteger )age ;
//匿名方法 省略掉第二个
-(void)setName:(NSString *)name : (NSInteger)age ;


//getter方法
//读取实例变量的值
-(NSString *)name ;
-(NSInteger) age;

//+开头的方法 类方法 给类调用的方法 通常用类名调用
+(void) textStudent ;

@end

2.类的实现

类实现的关键字:implementation 


//方法的命名 : 第一个单词的首字母小写,以后每一个单词的首字母大写 “驼峰规则”
@implementation Student

-(id)init//初始化对象的方法
{
    self = [super init] ; //self 表示调用者 ,指向调用者的对象指针变量
    //super 调用父类方法的关键字
    if ( self ) {
        _name = @"小华" ;
        _age = 12 ;
    }
    return self ;
}

//setter方法访问修改实例变量的值
-(void)setName:(NSString *)name
{
    _name = name ;
}
-(void)setAge:(NSUInteger)age
{
    _age = age ;
}
-(void)setName:(NSString *)name andAge:(NSInteger)age
{
    _name = name ;
    _age = age ;
}

//getter方法访问读取实例变量的值
-(NSString *)name
{
    return _name ;
}
-(NSInteger)age
{
    return _age ;
}
//测试当前类是否可用
+(void)textStudent
{
    Student *stu = [[Student alloc]init];
    [stu setName:@"小飞" andAge:25];
    NSLog(@"name = %@ age = %li",[stu name],[stu age]);
}

@end

创建一个对象,为对象分配内存空间并初始化,调用对象方法和类方法

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Student *stu = [[Student alloc] init];
        NSLog(@"name = %@ ,age = %li",[stu name],[stu age]) ;
        /*
         name = 小华 ,age = 12
         */
        
        //调用类方法
        [Student textStudent];
        /*
         name = 小飞 age = 25
         */
    }
    return 0;
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值