属性:某种事物的特性
/*- (NSString *)name;
setter:设置者
- (void)setName:(NSString *)name;
getter:获取者
- (NSString *)name;
setter:公式
- (void)set属性名:(属性类型)形参名;
getter:公式
- (属性类型)属性名;
//点语法(.) 又叫做属性
可以通过给属性赋值,取值
属性的定义公式
在.h 文件里,@property 属性类型 属性名;
(在最开始 .m文件@synthesize 表示实现属性方法,现在不用了)
现在@property既包含声明也包含实现
构造方法:init
自定义构造方法:
1.公式:
- (id)initWith要初始的名字:(数据类型)形参名
{
self = [super init];
if(self){
}
return self;
}
2.本质:有参数有返回值的方法,但是自定义有特殊意义,表示是一个创建对象的方法
标示它有特殊意义的符号:
(1)方法名:必须用initWith作为方法的开头,并且W大写
(2)方法实现的公式 自定义构造函数 必须实现下面功能
self = [super init];
if(self){
}
return self;
注意:1. initWith W必须大写
2. 不要忘记在.h文件中去声明、
?为什么要使用属性 ->正向传值->随时
?为什么要使用自定义构造方法 ->正向传值->只能在初始化一个对象的时候使用、可以在定义的同时赋值
目的都是为了传值
*/
#import
#import "Hero.h"
#import "Flower.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Hero *zhuBaJie = [[Hero alloc]init];
zhuBaJie.name = @"猪八戒";
zhuBaJie.power = 100;
zhuBaJie.blood = 10000;
zhuBaJie.def = 300;
NSLog(@"%@%d%d%d",zhuBaJie.name,zhuBaJie.power,zhuBaJie.blood,zhuBaJie.def);
/*
花类:品种 颜色 价格 气味
3种花:1、玫瑰花 2、桂花 3、梅花
*/
NSArray *flowerDatas = @[
@{@"name":@"玫瑰",@"price":@99,@"color":@"红色",@"flavour":@"很香"},
@{@"name":@"桂花",@"price":@90,@"color":@"黄色",@"flavour":@"漫天香"},
@{@"name":@"梅花",@"price":@100,@"color":@"红色",@"flavour":@"不是很香"}];
NSMutableArray *flowers = [NSMutableArray array];
for (int i = 0; i
Flower *flower = [[Flower alloc]init];
flower.name = flowerDatas[i][@"name"];
flower.price = [flowerDatas[i][@"price"] intValue];
flower.flavour = flowerDatas[i][@"flavour"];
flower.color = flowerDatas[i][@"color"];
[flowers addObject:flower];
}
for (Flower *flower inflowers) {
NSLog(@"%@ %@ %@ %d",flower.name,flower.flavour,flower.color,flower.price);
}
// Hero *hero = [[Hero alloc]initWithPower:100];
// Hero *hero2 = [[Hero alloc]initWithPower:1000];
Hero *shuaiHero = [[Hero alloc]initWithName:@"高二狗" andPower:250 andBlood:250 andDef:250];
NSLog(@"%@ %d %d %d",shuaiHero.name,shuaiHero.power,shuaiHero.blood,shuaiHero.def);
/*
花类:品种 颜色 价格 气味
3种花:1、玫瑰花(2)(15) 2、桂花(2000)(5000) 3、梅花(100)(400)
1、属性定义
2、可以选择 在初始 花的时候使用自定义构造方法
3、修改价格 可以使用属性 修改价格
*/
Flower *meiGui = [[Flower alloc]initWithName:@"玫瑰花" andColor:@"红色" andPrice:2 andFlavour:@"淡香"];
Flower *guiHua = [[Flower alloc]initWithName:@"桂花" andColor:@"白色" andPrice:2000 andFlavour:@"浓香"];
Flower *meiHua = [[Flower alloc]initWithName:@"梅花" andColor:@"白色" andPrice:100 andFlavour:@"青草"];
网友评论