美文网首页
(IOS)类方法、实例方法、构造方法

(IOS)类方法、实例方法、构造方法

作者: rightmost | 来源:发表于2018-12-28 14:58 被阅读0次

    类方法

    类方法,也称静态方法或者工厂方法,以+开头,指的是用static关键字修饰的方法。类方法属于整个类,在项目中工具类的封装多用工厂方法调用,调用格式[类名 类方法]; 举个例子,如果多个界面都需要从沙盒中取出某个数据,就可以把这个方法进行封装

    新建一个类,继承于NSObject,类名为GetHead。

    在GetHead.h中声明一个类方法+(NSString *)getHeadString;//这里的getHeadString就是类方法名。(NSString *)就是这个类方法返回的值的类型。

    在GetHead.m中实现声明的方法:

    +(NSString *)getHeadString

    {

      NSString *documentPathStr = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES) objectAtIndex:0];

      NSString *strPath = [documentPathStr stringByAppendingPathComponent:@"/obj.txt"];

      NSString *newStr = [NSString stringWithContentsOfFile:strPath encoding:NSUTF8StringEncoding error:nil];

      return newStr;

    }

    ViewController中调用这个方法:NSString *str = [GetHead getHeadString];

    类方法也可以同样传参数进去,比如进行网络请求时候,可以把网络请求封装,传入不同的请求体即可。

    实例方法

    实例方法指的是不用static关键字修饰的方法,以-开头,它属于类的某一个或某几个实例对象,即类对象必须实例化后才可以使用的方法,调用方式[对象名 对象方法];例:有一个Person类,继承于NSObject,在.h文件中声明一个方法-(void)say;.

    在.m文件中实现这个方法-(void)say{NSLog(@"哈哈哈");}

    ViewController要想调用这个方法:

    Person *xm = [[Person alloc]init];

    [xm say];

    构造方法

    什么是构造方法:初始化对象的方法。一般情况下,在 OC 当中创建1个对象分为两部分(new 做的事):alloc:分配内存空间,init :初始化对象。

    构造方法分为系统自带和自定义构造方法。

    (1)如果是系统自带的构造方法,需要重写父类中自带的构造方法 比如init

    (2)如果是自定义构造方法:属于对象方法那么以-号开头,返回值一般为id或者instancetype类型,方法名一般以init开头  系统构造方法书写格式:

    - (instancetype)init

    {

      self = [super init];

      if (self) {     

      }

    return self;

    }

    自定义构造方法:

    @property int age;

    @property NSString *name;

    //自定义构造方法 在初始化的时候为属性"年龄"和"姓名"赋值

    - (instancetype)initWithAge:(int)age andName:(NSString *)name;

    实现

    // 实现自定义构造函数 在初始化的时候为属性赋值

    - (id)initWithAge:(int)age andName:(NSString *)name

    {

      if (self = [super init]) {

        _age = age;

        _name = name;

    }

    return self;

    }

    构造方法和实例方法的区别

    IOS中,构造方法是指和类同名,用于构造对象(即生成对象)的方法。而实例方法,指的是在实例生成之后,实例调用的方法。

    构造方法->构造实例->实例产生->调用实例方法。

    详细说来,就是类调用构造方法,来生成了一个实例,而这个实例产生了以后,才会调用实例方法来完成一些行为。

    相关文章

      网友评论

          本文标题:(IOS)类方法、实例方法、构造方法

          本文链接:https://www.haomeiwen.com/subject/keoslqtx.html