iOS 类成员变量和局部变量的问题
2014-03-22 13:41
204 查看
成员变量定义问题:
property是为了提供给外部访问的,省去了get与set方法。如果你声明了property,而没有在interface声明变量,那么自动生成一个和property一样的变量名,默认的。在4.0之后可以乎约声明。个人觉得@public和@protected并没有很明确的区别,在他们作用范围内的对象,如果不将对象设置成@property,则该对象相当于
protected对象,只有子类和本身可以访问该对象;如果将对象设置成@property,则可以使使用者访问该对象。@private,顾名思义, 这里声明的就是私有对象。Objective-C中的private方法是通过category实现的,在实现文件中我们声明一个类的category,在这里面的方法就是private方法。类的对象是不可以进行调用的,同样由于该方法的声名是在类的实现文件中,所以子类也是不能重写该方法的。
局部变量和成员变量的区别:
1成员变量定义在类内部,局部变量定义在方法体内部。
2.成员变量可以不显示初始化,它可以由系统设定默认值;局部变量没有默认值,所以在初始化的时候要设定初始值。
3成员变量和局部变量在内存中的位置也不一样,成员变量在所在类被实例化后存放在堆内存中(堆里对象手动分配空间),而局部变量在所在方法调用时存放与栈内存空间中(根据对象大小自动分配空间)
属性与变量:
《语法官方文档》
property是为了提供给外部访问的,省去了get与set方法。如果你声明了property,而没有在interface声明变量,那么自动生成一个和property一样的变量名,默认的。在4.0之后可以乎约声明。个人觉得@public和@protected并没有很明确的区别,在他们作用范围内的对象,如果不将对象设置成@property,则该对象相当于
protected对象,只有子类和本身可以访问该对象;如果将对象设置成@property,则可以使使用者访问该对象。@private,顾名思义, 这里声明的就是私有对象。Objective-C中的private方法是通过category实现的,在实现文件中我们声明一个类的category,在这里面的方法就是private方法。类的对象是不可以进行调用的,同样由于该方法的声名是在类的实现文件中,所以子类也是不能重写该方法的。
局部变量和成员变量的区别:
1成员变量定义在类内部,局部变量定义在方法体内部。
2.成员变量可以不显示初始化,它可以由系统设定默认值;局部变量没有默认值,所以在初始化的时候要设定初始值。
3成员变量和局部变量在内存中的位置也不一样,成员变量在所在类被实例化后存放在堆内存中(堆里对象手动分配空间),而局部变量在所在方法调用时存放与栈内存空间中(根据对象大小自动分配空间)
属性与变量:
《语法官方文档》
相关文章推荐
- iOS 类成员变量和局部变量的问题
- java线程安全问题之静态成员变量、实例成员变量、局部变量
- java线程安全问题之静态成员变量、实例成员变量、局部变量
- IOS 成员变量,属性变量,局部变量,实例变量,全局变量 详解
- ios 局部变量,全局变量,成员变量
- 7 面向对象(成员变量和局部变量的区别,类作为形式参数的问题,匿名对象,封装,private关键字,this关键字,构造方法,类的初始化过程,static关键字)
- iOS 成员变量,属性变量,局部变量,实例变量,全局变量 详解
- Java成员变量和局部变量初始化问题
- java线程安全问题之静态成员变量、实例成员变量、局部变量
- 学习IOS开问题篇--类中的成员变量如果不实例化是什么情况
- IOS之成员变量,属性变量,局部变量,实例变量,全局变量
- ios类别(category)不能添加成员变量但是可以添加属性的问题
- IOS的成员变量、局部变量、全局变量
- java线程安全问题之静态成员变量、实例成员变量、局部变量
- 关于成员变量和局部变量是否都会被默认初始化的问题
- iOS开发 - Objective-C语言 | 局部变量、全局变量和成员变量之间的区别
- iOS类别(category)不能添加成员变量但是可以添加属性的问题
- iOS 局部变量 全局变量 成员变量
- 结构体struct的成员变量字节对齐问题详解
- ios 类 变量问题