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

24 篇文章 0 订阅
4 篇文章 0 订阅

最近一直在忙,没有继续更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)变量。在{ }外面是不能再定义变量只能定义方法,这里定义的方法也是私有型的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值