【IOS学习笔记(一)】IOS中.h和.m文件中的变量和方法
来源:互联网 发布:韩日军力对比知乎 编辑:程序博客网 时间:2024/03/29 14:01
楼主2年前曾做过IOS项目,当时工作繁忙没有时间记录下所学的点点滴滴,现在楼主打算重新学习,特此写下一些IOS的相关知识。
IOS与C++一样,拥有.h头文件和.m文件。在C++中一切变量和函数声明都定义在.h文件中,这一点IOS与此相似却也有些不同。
IOS头文件定义变量的地方有两处:@interface的{ }里面和外面。在与头文件对应的.m文件中的使用是没有什么区别的,直接使用即可,主要区别在于外部调用。
写在@interface的{ }里面的变量只能在本类和子类(派生类)中使用,相当于C++中的保护型(protect)。
而写在@interface的{ }外面的变量可以在任何类中使用,相当于C++中的公有型(public)。
方法的定义就相对简单,带有“-”号的方法只能在本类和子类(派生类)中使用,相当于C++中的保护型(protect)。
带有“+”号的方法可以在任何类中使用,相当于C++中的公有型(public)。
但是,IOS对于开发者使用公有型(public)变量和方法做了十分谨慎的限定,公有型的变量有@property属性进行引用计数和内存限制(这个以后再讲)。而带有“+”号的公有型方法还有static的属性,可以直接使用类名进行调用。
C++中的私有型(private)与保护型和公有型的变量(方法)区别在于无法被外部调用,因此IOS做了个巧妙的方法加以区别,将私有型变量(方法)放入.m文件中定义。
在.m文件的开始处有一个@interface定义,写在{ }里面的变量就是本类的私有型(private)变量。在{ }外面是不能再定义变量只能定义方法,这里定义的方法也是私有型的。
理论讲解到这里结束,下面我们来测试一下。
博主定义了一个Test1类继承于Test类,因此在Test的.h头文件中定义的变量a,b,c和方法add()、add1()都可以调用,而在.m定义的变量d和方法add2()却无法调用。
在testFather方法中无论使用什么方法都无法调用到变量d和方法add2,提示无法找到变量d和方法add2。
至此结束,欢迎大家指正,交流学习。
- 【IOS学习笔记(一)】IOS中.h和.m文件中的变量和方法
- iOS:如何理解.h 和 .m 文件中的同一个@interface
- ios的属性和成员变量在.h文件和.m文件的不同
- ios的属性和成员变量在.h文件和.m文件的不同
- ios的属性和成员变量在.h文件和.m文件的不同
- iOS .h文件.m文件中的@interface
- IOS学习笔记-ios中的文件目录和XML文件
- iOS学习笔记-iOS中的类方法和实例方法
- OC中的属性和成员变量在.h文件和.m文件的不同
- iOS变量定义在 .h 还是 .m 中
- IOS中全局变量与AppDelegate.h /.m 文件
- ios中的变量和属性
- iOS方法和实例变量
- IOS学习笔记---文件加载和保存
- IOS的.m和.mm文件总结
- IOS 学习笔记 读懂常见的的一些方法和变量1
- iOS给.h .m文件换名称
- XCode中.h 和 .m 文件中的同一个@interface有何区别
- 字串统计
- Spring——IOC(四)
- The Unique MST(次小生成树问题)
- 进入centos命令行的方式
- BTEA算法C语言实现
- 【IOS学习笔记(一)】IOS中.h和.m文件中的变量和方法
- 【操作系统】1、操作系统概述
- Java虚拟机(二):Java常见内存溢出异常分析
- Android 垂直滚动条
- (转)C++笔记(1)explicit 只对构造函数起作用,用来抑制隐式转换。
- Linux Kernel Security (SELinux vs AppArmor vs Grsecurity)
- 45种Javascript技巧大全
- POJ1733---Parity game
- git上传代码到github