1,先说定义java
1)成员变量定义:生存与该类的生命周期,变量存活周期跟你定义的该类实体对象同样;做用域是整个实体对象;能够在h文件中声明或者在m文件中@implementation上面添加的函数
#import “S1ViewController.h”学习
@interface S1ViewController ()atom
//这里作声明spa
@end对象
@implementation S1ViewControllerblog
@end接口
举例:S1ViewController.h文件中定义生命周期
@interface S1ViewController : UIViewControllerip
{
NSString* sttr2;//S1ViewController实体对象的成员变量
}
@property(nonatomic,retain) NSString* sttr2;//定义点语法的快捷操做setter 与 getter方法
@end
注明:在h文件中定义的变量,在外部可见
.h声明了类,至关于java的接口,在这里interface块外声明的函数和属性都是外部可见的,可是在块内的貌似是私有的
.m里面的全部东西都是对外封闭的这样就是有效的源码的开源与闭源;
2)全局变量
定义:在@implementation外定义的变量(在@implementation中定义也是能够可是通常不这么干)
举例:
//规范的
staticinthu=3;//全局变量
NSString*sttr1=@”S1ViewController”;//全局变量
@implementationS1ViewController
@end
//不规范的
@implementation S1ViewController
static int hu=3;//全局变量
NSString*sttr1=@”S1ViewController”;//全局变量
@end
全局变量分为两种:
1)static修饰的也称私有全局变量,只在该源文件中可用
学习过Java 或者 C 语言的朋友应该很清楚static关键字吧?在某个类中声明一个static 静态变量, 其余类中想使用它或者修改它不用new 这个对象 ,直接使用它的类名方可直接拿到这个静态变量的对象,遍能够在其余类中任意修改这个变量的数值。它是存于全局变量区,生命周期和程序相同,static只在声明的类中可见。
在声明的类中结束后,再次使用仍是以前的值。
在Objective-C 的语法中声明后的static静态变量在其余类中是不能经过类名直接访问的,它的做用域只能是在声明的这个.m文件中 。不过能够调用这个类的方法间接的修改这个静态变量的值
static关键字声明的变量须放在implementation外面,或者方法中,若是不为它赋值默认为0,它只在程序开机初始化一次(并非该类实例化后才初始化的)
将static静态变量写在方法中,它的初始化也是在程序开机时,程序一旦启动之后static是不能在建立的。因此程序在这里调用了5次这个方法,sCount的值并无由于从新建立static sCount而改变,而是将sCount的值一直存在内存中。
2)没有static修饰的 ,在任何源文件中均可以用,注意:定义没有static的全局变量,命名必定要很独特,才能区分与其余源文件中的全局变量,若是出现跟其余源文件同名的全局变量,则会报错误
例如:
NSString*sttr1=@”S1ViewController”;//全局变量
在其余文件若是要用该全局变量,在前面加externNSString*sttr1;便可使用了