成员变量都是实例变量,不支持真正的类变量 1.成员变量在类接口或类实现部分定义 (1)实例变量:定义在类中但在任何方法之外。(New出来的均有初始化)
当一个对象被实例化之后,每个实例变量的值就跟着确定;实例变量在对象创建的时候创建,在对象被销毁的时候销毁;实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些 方式获取实例变量信息;实例变量可以声明在使用前或者使用后; 2.只要实例存在,就可以访问该实例 实例->实例变量 #import <Foundation/Foundation.h> @interface FKPerson : NSObject { @public // 定义俩个实例变量 NSString* _name; int _age; } @end @implementation @end int main(int argc, char * argv[]) { @autoreleasepool { FKPerson * p = [[FKPerson alloc] init]; NSLog(@"p的变量的_name实例变量的值是:%@,p对象的_age成员变量的值是:%d",p->_name, p->_age); p->_name = @"孙悟空"; p->_age = 500; NSLog(@"p变量的_name实例变量的值是:%@,p对象的_age成员变量的值是:%d", p->_name, p->_age); } }1.从上面看,成员变量无须初始化
基本类型默认赋初值为0,指针类型赋初值为nil。 FKPerson * p1 = [[FKPerson alloc] init]; FKPerson * p1 = [[FKPerson alloc] init]; p1->_age = 100; p2->_age = 200; 执行第一条语句时,程序会为FKPerson对象的成员变量分配内存空间。 摘要 实例变量将会在创建实例时分配内存空间