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

来源:互联网 发布:花生壳域名 编辑:程序博客网 时间:2024/05/17 05:08
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];


/*
 设计如下两个类PersonDog,狗有一个自定义初始化方法,可以传入狗名和狗的颜色。
 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(@"请选择时间:");
   
NSIntegertime;
   
scanf("%ld", &time);
   
switch (time) {
       
case9:
//            NSLog(@"带狗出去跑!");
            [
_dogrun];
           
           
break;
       
case10:
//            NSLog(@"和狗玩捡球游戏!");
            [
_dogpickup];
           
break;
       
case11:
//            NSLog(@"逗狗叫!");
            [
_dogbark];
           
break;
       
default:
//            NSLog(@"狗在睡觉!");
            [
_dogsleep];
           
break;
    }
}

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

int main(int argc, const char * argv[]) {
   
@autoreleasepool{
       
Dog *dog = [[Dogalloc]initWithDname:@"多多" Color:@""];
       
Person*jack = [[Personalloc]init];
        [jack
setDog:dog];
       
        jack.
pname= @"jack";
        dog.
dname= @"东东";
       
       
NSLog(@"%@的狗的名字是:%@,它是%@色的",[jackpname],[dogdname],[dogcolor]);
       
       
do {
            [jack
liugou];
        } while (1);
0 0