android攻城狮开发iOS .m和.h的区别

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34476727/article/details/83352738

最近一直在忙,没有继续更Android攻城狮iOS开发,今天继续更新。

Android 开发中我们用Java开发文件的后缀都是.java 结束的,用kotlin开发后缀为.kt,但是ios中我们发现有它有.h和.m之分,下面我们来看一下他们的区别吧:

.h文件
在这里插入图片描述

.m文件
在这里插入图片描述

在.h文件中

      有一个import,这是用来导入工具包,就是foundation框架

      @这个标志表示你使用的是object-c语言

     @interface 是声明类的关键字 

     People是类名

     : 冒号表示继承,oc中是单继承模式

     NSObject是父类

     在@interface和@end之间是用来声明属性和方法的

.h中的@interface @end 这一对也可以写在.m文件的上方,就可以实现在.m文件中声明属性

例如这样
在这里插入图片描述

在.m文件中声明的属性是无法被外界看到的,所以也成为私有属性,而在.h中的属性就是public属性

在.m文件中

#import ”People.h“ 用来导入.h中声明的属性和变量

@implementation People implementation是实现类的关键字

@interface的{ }里面和外面。在与头文件对应的.m文件中的使用是没有什么区别的,直接使用即可,主要区别在于外部调用。

写在@interface的{ }里面的变量只能在本类和子类(派生类)中使用,相当于C++中的保护型(protect)。

而写在@interface的{ }外面的变量可以在任何类中使用,相当于C++中的公有型(public)。

方法的定义就相对简单,带有“-”号的方法只能在本类和子类(派生类)中使用,相当于C++中的保护型(protect)。

带有“+”号的方法可以在任何类中使用,相当于C++中的公有型(public)。

但是,IOS对于开发者使用公有型(public)变量和方法做了十分谨慎的限定,公有型的变量有@property属性进行引用计数和内存限制(这个以后再讲)。而带有“+”号的公有型方法还有static的属性,可以直接使用类名进行调用。
C++中的私有型(private)与保护型和公有型的变量(方法)区别在于无法被外部调用,因此IOS做了个巧妙的方法加以区别,将私有型变量(方法)放入.m文件中定义。

在.m文件的开始处有一个@interface定义,写在{ }里面的变量就是本类的私有型(private)变量。在{ }外面是不能再定义变量只能定义方法,这里定义的方法也是私有型的。

猜你喜欢

转载自blog.csdn.net/qq_34476727/article/details/83352738