美文网首页
iOS 开发:类方法、对象方法

iOS 开发:类方法、对象方法

作者: 哈布福禄克 | 来源:发表于2019-11-12 14:25 被阅读0次

Objective-C中的方法有两种:类方法和对象方法(也叫作实例方法)。

1、对象方法(实例方法)

1.1、对象方法解释

对象方法以 - 开头,属于类的某一个或某几个实例对象。对象方法是类对象必须进行实例化后才可以使用的方法,对象方法将消息发送给实例对象

1.2、对象方法声明

  • 格式


    对象方法.png
  • 特征:
  • 对象方法以-开头如 -(void)xx;
  • 对象方法只能由对象来调用
  • 对象方法中可以访问当前对象的成员变量
  • 调用格式 [对象名 对象方法名];

1.3、对象方法实现:

  • 必须写在以@implementation开头,@end之间
  • 在声明的后面加上{}即表示实现
  • 将需要实现的代码写在{}中

2、类方法

2.1、类方法解释

以+开头的方法是类方法。它是属于类本身的方法,不属于类的某一个实例对象,不需要实例化类,用类名即可使用,通过类方法将消息发送给类

2.2、类方法声明

  • 格式

将对象方法-号变为+号

  • 特征
  • 类方法以+开头 如+(void)put;
  • 类方法只能由类来调用
  • 类方法中不能访问实例(成员)变量,因为类方法由类来调用,并没有创建存储空间来存储类中的成员变量。
  • 类方法的好处:
  • 不依赖于对象,执行效率更高;
  • 能用类方法解决的问题,尽量使用类方法;
  • 类方法的场合:
  • 当方法内部不需要使用到成员变量时,可以改为类方法
  • 类方法一般用于编写工具方法

2.3、类方法实现

  • 必须写在以@implementation开头,@end之间
  • 在声明的后面加上{}即表示实现
  • 将需要实现的代码写在{}中

3.对象方法和类方法区别

3.1、对象方法

  • 对象方法是属于对象的
  • 以减号-开头
  • 只能让对象调用,没有对象,这个方法根本不可能被执行
  • 对象方法能访问实例变量(成员变量)
  • 对象方法中可以调用当前对象的对象方法
  • 对象方法中可以调用其他对象的对象方法
  • 对象方法中不可以调用类方法

3.2、类方法

  • 类方法是属于类的
  • 以加号+开头
  • 只能用类名调用,对象不能调用
  • 类方法中不能直接访问实例变量(成员变量)
  • 类方法中不能直接调用对象方法,要想调用对象方法,必须创建或传入对象。

3.3、使用场合:

  • 当不需要访问成员变量的时候,尽量用类方法
  • 类方法和对象方法可以同名

4、声明和实现

在OC中类的定义有两部分:类的声明、类的实现。

  • .h:
    类的声明文件,用于声明成员变量、方法。类的声明使用关键字@interface和@end。

注意:.h中的方法只是做一个声明,并不对方法进行实现。

也就是说,只是说明一下方法名、方法的返回值类型、方法接收的参数类型而已,并不会编写方法内部的代码。

  • .m:

类的实现文件,用于实现.h中声明的方法。类的实现使用关键字@implementation和@end。
方法的声明和实现,都必须以 + 或者 -开头:

  • + 表示类方法(静态方法)
  • - 表示对象方法(动态方法)

在.h中声明的所有方法作用域都是public类型,不能更改。
成员变量的常用作用域有3种:

  • @public 全局都可以访问
  • @protected 只能在类内部和子类中访问
  • @private 只能在类内部访问

相关文章

网友评论

      本文标题:iOS 开发:类方法、对象方法

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