您的位置:首页 > 编程语言 > C语言/C++

【OC-2】OC语言基础二(自定义初始化、点语法)(连载二)

2015-07-29 07:58 453 查看
1.自定义初始化
(1)方法返回值类型:有三种方式:(id), (instancetype), (类名
*)
(2)初始化方法:自定义的初始化方法,协商以init开头,并且init后面必须是大写
【Book.h文件中声明】
- (id) initWithTitle:(NSString *)title WithPage:(NSInteger)page;
【Book.m文件中实现】
- (id) initWithTitle:(NSString *)title WithPage:(NSInteger)page

{

    self = [super init];

    if(self)

    {

        _title = title;

        _page = page;

    }

    return self;
}
【main.m文件中调用】
Book *book = [[Book alloc] initWithTitle:@"经典" WithPage:20];

2.点语法调用
凡是赋值语句等号左边第一个点是set方法,其余都是get方法
        //set方法,点语法修改用户名,密码
        manager.userName = @"jack”;<===>[manager setUserName];
        manager.password = 999999;<===>[manager setPassword];
      
       
//get方法,点语法访问修改的用户名,密码
        NSString *userName = manager.userName;<===>[manager userNa];
        NSInteger password = manager.password;<===>[manager password];

/*
 设计如下两个类Person和Dog,狗有一个自定义初始化方法,可以传入狗名和狗的颜色。
 Person有一个遛狗的方法,可以传入一个时间值,9点带狗出去跑,10点和狗玩捡球的游戏,11点逗狗叫。
 */
Dog.h文件中:
{

    NSString
*_dname;

    NSString
*_color;
}
//自定义的初始化方法----》狗名、狗颜色

- (id)initWithDname:(NSString
*)dname Color:(NSString
*)color;

//跑方法

- (void)run;
//捡球方法

- (void)pickup;
//叫方法

- (void)bark;
//睡觉

- (void)sleep;

//set方法

- (void)setDname:(NSString
*)dname;

- (void)setColor:(NSString
*)color;

//get方法

- (NSString
*)dname;
- (NSString *)color;
Dog.m文件中:
#pragma mark
//自定义的初始化方法----》狗名、狗颜色

- (id)initWithDname:(NSString
*)dname Color:(NSString
*)color{

    self
= [super
init];

    if
(self) {

        _dname
= dname;

        _color
= color;

    }

    return
self;

}
#pragma mark
//跑方法

- (void)run{

    NSLog(@"狗跑!");

}
//捡球方法

- (void)pickup{

    NSLog(@"狗捡球!");

}
//叫方法

- (void)bark{

    NSLog(@"狗叫!");

}
//睡觉

- (void)sleep{

   NSLog(@"睡觉!");

}

//set方法

- (void)setDname:(NSString
*)dname{

    _dname
= dname;

}

- (void)setColor:(NSString
*)color{

    _color
= color;

}

//get方法

- (NSString
*)dname{

    return 
_dname;

}

- (NSString
*)color{

    return 
_color;

}

Person.h文件中:
#import
"Dog.h"

{

    NSString
*_pname;

    Dog
*_dog;

}

//set方法

- (void)setPname:(NSString
*)pname;

- (void)setDog:(Dog
*)dname;

//get方法

- (NSString
*)pname;

- (Dog
*)dog;

//遛狗方法

- (void)liugou;

Person.m文件中:
//set方法

- (void)setPname:(NSString
*)pname{

    _pname
= pname;

}

- (void)setDog:(Dog
*)dog{

    _dog
= dog;

}

//get方法

- (NSString
*)pname{

    return
_pname;

}

- (Dog
*)dog{

    return
_dog;

}

//遛狗方法

- (void)liugou{

    NSLog(@"请选择时间:");

    NSInteger
time;

    scanf("%ld", &time);

    switch
(time) {

        case
9:
//            NSLog(@"带狗出去跑!");

            [_dog
run];

           

            break;

        case
10:
//            NSLog(@"和狗玩捡球游戏!");

            [_dog
pickup];

            break;

        case
11:
//            NSLog(@"逗狗叫!");

            [_dog
bark];

            break;

        default:
//            NSLog(@"狗在睡觉!");

            [_dog
sleep];

            break;

    }

}

main.m文件中:
#import
"Person.h"
#import
"Dog.h"

int
main(int
argc, const
char * argv[]) {

    @autoreleasepool
{

        Dog
*dog = [[Dog
alloc]initWithDname:@"多多" 
Color:@"白"];

        Person
*jack = [[Person
alloc]
init];

        [jack setDog:dog];

       

        jack.pname
=
@"jack";

        dog.dname
=
@"东东";

       

        NSLog(@"%@的狗的名字是:%@,它是%@色的",[jack
pname],[dog
dname],[dog
color]);

       

        do
{

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