您的位置:首页 > 其它

OC-属性

2015-10-27 10:20 281 查看
*************************
self:表示实例变量自己本身

super:表示父类变量本身

*********************/
/*

-(void)funA

{

_age=20;

NSLog(@"-:funA %d",_age);

[self funB]; //接着调用funB

}

-(void)funB

{

NSLog(@"-:funB %d",_age);

[Student sayHello];//确定的 去 调用不确定的可以,反之不行

}

+(void)sayHello

{

// ——age=20、、这是错误的;类方法不能操作实例变量
// [self funA];error:类方法不能调用实例方法

NSLog(@"+:sayHello");

}

*****************************************
OC中的类分为.h和.m文件
.h文件只要做声明:成员变量,属性、方法

表示类的接口@interface

.m最为函数的实现部分;实现方法

@implementation

成员变量

*/

/** 面向对象的三大特性:

封装:隐藏内部实现,稳定外部接口

继承:子类复用父类的成员变量、属性、方法(重写)
多态:父类指针(父类对象)指向子类空间

*/
************************************
@interface Student : NSObject

{

int _age;//全局变量 变量之前加_ 用来区别一些类属性

}

//实例方法
//-(void)

-(void)funA;

-(void)funB;

+(void)sayHello;

//类方法
//+(返回类型)方法名
@end

************************************
@propertyint age;// 代替下面两句话
@property NSString *name;
@property NSString *address;
/**

-(void)setAge:(int)Age;

-(int)getage;

-(void)setName:(NSString *)Aame;

-(NSString *)getname;

-(void)setAddress:(NSString *)Address;

-(NSString *)getaddress;

**/***********************************

构造方法 自定义构造方法
。h
@interface Student : NSObject

@property int age;
@property NSString *name,*address;

// 重写构造方法、初始化方法
-(instancetype)init;//(id)意义一样 初始化值时定义的是多少就是多少,无法在main函数里面修改 重写init父类里的方法

//自定义构造方法
//以init开头的都是构造方法,第二个单词首字母必须大写

-(instancetype)initWithAge:(int)age

andName:(NSString *)name
andAddress:(NSString *)address;

。m
// 1. 初始化方法:完成初始化信息、返回对象

-(instancetype)init

{

self=[super init]; //self在父类里

if (self)//if(self != nil);确定self在父类里才执行

{

self.age=10;

self.name=@"Tom";

self.address=@"China";

}

return self;//是谁调用,self就是谁

}
// 2. 自定义构造方法

-(instancetype)initWithAge:(int)age

andName:(NSString *)name

andAddress:(NSString *)address

{

self=[super init]; //self在父类里

if (self)//if(self != nil);确定self在父类里才执行

{

self.age=age;

self.name=name;

self.address=address;

}
return self;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: