MST

星途 面试题库

面试题:Objective-C类接口与实现文件结构的基础差异

请详细阐述Objective-C类的接口文件(.h)和实现文件(.m)在结构上有哪些主要区别,以及各自的作用是什么,例如接口文件中通常定义什么,实现文件又主要负责什么内容?
35.2万 热度难度
编程语言Objective-C

知识考点

AI 面试

面试题答案

一键面试

接口文件(.h)

  1. 结构
    • 通常以#import语句开始,用于导入其他必要的头文件,以提供所需的类型定义和声明。
    • 接着是类的声明,使用@interface关键字,声明类名、父类以及遵守的协议等。
    • @interface块内定义类的属性(使用@property关键字)和方法声明(包括实例方法和类方法)。
  2. 作用
    • 对外暴露接口:接口文件是类的公共接口,向其他类展示这个类能提供什么功能,其他类可以通过导入该头文件来知晓并使用这些功能。
    • 定义类型信息:定义类的属性和方法,为其他代码提供类型定义,使其知道如何与该类的实例进行交互。例如,属性的类型定义让其他类知道可以获取或设置什么样的数据类型,方法声明让其他类知道该类能够执行哪些操作。

实现文件(.m)

  1. 结构
    • 首先也会使用#import导入对应的接口文件(.h文件),确保接口定义可用。
    • 然后使用@implementation关键字开始类的实现部分,在这个块内实现接口文件中声明的方法,包括方法的具体逻辑。
    • 还可以在@implementation块内定义私有属性和私有方法(虽然Objective - C没有严格意义上的私有,但通过这种方式可以实现一定程度的隐藏)。
  2. 作用
    • 实现功能:实现文件负责具体功能的实现,将接口文件中声明的方法具体实现,包含业务逻辑、算法等。其他类调用接口文件中声明的方法时,实际执行的是实现文件中的代码。
    • 封装细节:隐藏类的实现细节,只向外部暴露接口文件中的公共接口,提高代码的安全性和可维护性。例如,外部类无需知道某个方法内部具体的算法实现,只需要通过接口调用即可。