OC(五)属性

作者: 社会主义顶梁鹿 | 来源:发表于2018-07-29 16:42 被阅读0次

    属性:某种事物的特性

    /*- (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:@"青草"];

    相关文章

      网友评论

        本文标题:OC(五)属性

        本文链接:https://www.haomeiwen.com/subject/qsxtvftx.html