美文网首页
OC -- 实例方法和类方法

OC -- 实例方法和类方法

作者: J_coco | 来源:发表于2016-01-21 15:51 被阅读0次

建立一个类:NewClass
NewClass.h

#import <Foundation/Foundation.h>
@interface NewClass : NSObject

/*
    便利构造器
    @param member 属性member参数
    @return 对象
- (instancetype)initWithMember:(NSString *)member;

    类方法 便利构造器
    @param member 属性member
    @return 对象
+ (NewClass *)newObjectWithMember:(NSString *)member;

    类方法创建对象
    @return 对象
+ (NewClass *)newObject;

/*
    实例方法
          1.使用“_”
          2.调用者 -> 本类的对象
          3.方法中是否可以使用本类的属性:是
*/
- (void)objectMethod;

/*
    类方法:1.使用“+”
                 2.调用者 -> 本类的类名
                 3.方法中是否可以使用本类的属性:否
*/
+ (void)classMethod;

@end



*/

NewClass.m

#import "NewClass.h"
@implementation NewClass
- (instancetype)initWithMember:(NSString *)member
{
  if(self = [super init])
  {
    _member = member;
  }
  return self;
}

+ (NewClass *)newObjectWithMember:(NSString *)member
{
    //1.如果实现了 -initWithmember:
//    NewClass *object = [[NewClass alloc]initWithMember:member];

    //2.
    NewClass *object = [[NewClass alloc]init];
    object.member = member;
    return object;
}

//类方法初始化
+ (NewClass *)newObject
{
  NewClass *object = [[NewClass alloc]init];
  return object;
}

- (void)objectMethod
{
  NSLog(@"实例方法实现:由于有一个具体的对象 所以可以使用对象的属性:%@",_member);
}

+ (void)classMethod
{  
  NSLog(@"类方法的实现:由于是用类名调用,没有具体对象,所以不能使用属性");
}

@end

main.m

#import <Foundation/Foundation.h>
#import "NewClass.h"

int main(int argc, const char *argv[])
{
  @autoreleasepool
  {
    //1.实例方法创建对象(继承自NSObject的init方法)
    NewClass *object = [[NewClass alloc]init];
    //类方法创建对象(自己封装)
    NewClass *object2 = [NewClass newObject];

    //2.实例方法便利构造器
    NewClass *object3 = [[NewClass alloc]initWithMember:@"属性"];
    //类方法遍历构造器
    NewClass *object4 = [NewClass newObjectWithMember:@"属性"];

    //3.对象调用 -> 实例方法
    [object objectMethod];
    //类名调用 -> 列方法
    [NewClass classMethod];
  }
  return 0;
}

相关文章

  • From Objective-C to Ruby(4)-类和模块

    类 定义类 OC: ruby: 初始化方法 OC: ruby: 实例变量和属性 OC: ruby: 类方法和对象方...

  • Objective-C 类与对象

    类方法 OC 中类的方法只有类的静态方法和类的实例方法 OC 中的方法只要声明在 @interface 里,就可以...

  • OC&iOS

    OC语言基础 1.类与对象 类方法 OC的类方法只有2种:静态方法和实例方法两种 在OC中,只要方法声明在@int...

  • Swift 方法

    方法分为:实例方法、类方法。 类似于OC中的-方法,+方法 实例方法(Instance Method)通过实例对象...

  • 方法

    隶属于每一个类或结构体的函数称之为方法:方法分为类方法和实例方法, 对应OC中的+ - 方法实例方法:实例方法一定...

  • swift方法

    oc中只有类可以定义方法,swift类/结构体/枚举都能定义方法 swift的类型方法类似oc的类方法 实例方法(...

  • Objective-C方法

    方法的分类 OC中的方法分两种:类方法(+号)和实例方法(-号)类方法:只能被类使用,例如: + (instanc...

  • OC -- 实例方法和类方法

    建立一个类:NewClassNewClass.h NewClass.m main.m

  • Swift - 方法

    在Swift中,方法可以在类、结构体、枚举中定义,比OC更加灵活。1.实例方法实例方法由类的特定实例调用,实例方法...

  • swift5基本语法-方法/重写

    一、方法 Swift中枚举、结构体、类都可以定义实例方法、类型方法。实例方法(OC中的-减号方法): 通过实例调用...

网友评论

      本文标题:OC -- 实例方法和类方法

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