zoukankan      html  css  js  c++  java
  • [Objective-c] 002_对象 类 变量 方法

    接触过Java的对面向对象应该是熟悉不过了, Objective-C也是面向对象的。

    • 对象
    • 变量
    • 方法

    Objective-c 中如何定义一个类?

    .h文件

    #import <Foundation/Foundation.h>
    
    @interface Student: NSObject{      // 创建学生类继承NSObject
    
      NSString * name;   
    
      int age;
    
     }
    
    -(void)setName:(NSString*)nameString;   // name set方法
    
    -(void)setAge: (int)ageValue;            // age set方法
    
    -(NSString*)getName;              // name get方法  
    
    -(NSString*)getAge;                  // age get方法
    
    @end;

    .m文件

    @implementation Student
    
    -(void)setName:(NSString*) nameString{     // 实现setName方法
    
      if(nameString!= nil){ 
    
        [name relelase] ;                      // 释放原来的name
    
        [nameString retain];                   // 保留nameString 
    
        name = nameString;
    
      }
    }
    
    -(void)setAge: (int)ageValue {
      age = ageValue;
    }
    
    -(NSString*)getName {
      return name;
    }
    
    - (int) getAge {
      return age;
    }
    
    @end;

    实例化类对象 (main.m文件)

    #import <Foundation/Foundation.h>
    
    int main(int argc,const char*argv[]){
    
      NSAutoreleasePool  *pool=[[NSAutoreleasePool alloc] intit ];
    
      Student  *student = [[SKPerson alloc] init]; //初始化对象
    
      [student setName:@"SuperDo"];
    
      [student setAge:25];
    
      [student release];
    
      [pool release];
    
      return 0;
    
    }

    在上面的.h文件中我们对一个属性的get set 一一申明,然后在.m文件中一一实现,其实在Objective-c 中有便捷的写法,我们改写下

    .h文件

    #import <Foundation/Foundation.h>
    
    @interface Student: NSObject{      // 创建学生类继承NSObject
    
      NSString * name;   
    
      int age;
    
     }
    
    @property  (nonatomic,retain) NSString* name;    // 一行代码就申明了 setName 和 getName
    @property  (nonatomic,assign)int age;         // 一行代码就申明了 setAge 和 getAge
    
    @end;
    
     
    
    @implementation Student
    
    @synthesize name;      // 一行代码就实现了 setName 和 getName
    @synthesize age;      // 一行代码就实现了 setName 和 getName
    
    @end;

     

    本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 
    转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4526629.html

     

     

  • 相关阅读:
    mysql同步故障解决
    linux环境变量
    shell脚本中的交互式输入自动化
    ERROR oslo_service.service PlacementNotConfigured 解决办法
    openstack源
    rabbitmq——用户管理
    linux lvm扩容
    UWB DWM1000 开源项目框架 之 信号强度指示RSSI
    UWB DWM1000 开源项目框架 之 温度采集
    UWB DWM1000 开源项目框架
  • 原文地址:https://www.cnblogs.com/superdo/p/4526629.html
Copyright © 2011-2022 走看看