走进OC连载二

1.自定义初始化
方法返回值类型有三种方式:(id), (instancetype), (类名 *)
初始化方法:自定义的初始化方法,协商以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.password = 999999;
        //get方法, 点语法访问修改的用户名,密码
       
NSString *userName = manager. userName ;
        NSInteger password = manager.password;
3. 设计如下两个类 Person Dog ,狗有一个自定义初始化方法,可以传入狗名和狗的颜色。
       Person 有一个遛狗的方法,可以传入一个时间值, 9 点带狗出去跑, 10 点和狗玩捡球的游戏, 11 点逗狗叫。
 main.m文件:
int main( int argc, const char * argv[]) {
   
@autoreleasepool {
       
Dog *dog = [[ Dog alloc ] initWithDname : @" 嘟嘟 " WithColor : @" 白色 " ];
       
Person *person = [[ Person alloc ] init ];
        [person
setPname : @"jack" ];
        person.
dname . dname = @" 叮叮 " ;
        [person
setDname :dog];
       
NSLog ( @"%@ 的狗叫 %@ ,它是 %@ " , [person pname ], [dog dname ], [dog color ]);
       
do
        {
           
NSLog ( @" 请输入一个时间: " );
           
NSInteger time;
           
scanf ( "%ld" , &time);
            [person liuGou:time];  
        }while(1) ;
    }
   
return 0 ;
}
Person.h文件:
#import <Foundation/Foundation.h>
#import "Dog.h"
@interface Person : NSObject
{
   
NSString *_pname;
    Dog *_dname;  
}
// 设置器
- (
void )setPname:( NSString *)pname;
- (void)setDname:(Dog *)dname;
// 访问器
- (
NSString *)pname;
- (Dog *)dname;
// 遛狗方法
- (void)liuGou:(NSInteger)time;
@end
Person.m文件:
#import "Person.h"
@implementation Person
#pragma mark - Set
- ( void )setPname:( NSString *)pname
{
   
_pname = pname;
}
- (
void )setDname:( Dog *)dname
{
   
_dname = dname;
}
#pragma mark - Get
- ( NSString *)pname
{
   
return _pname ;
}
- (
Dog *)dname
{
   
return _dname ;
}
// 遛狗方法
- (
void )liuGou:( NSInteger )time
{
   
if (time == 9 ) {
       
//
        [
_dname run ];
       
    }
else if (time == 10 ) {
     
// 捡球
        [
_dname pickup ];
    }
else if (time == 11 ) {
      
// 逗狗叫
        [
_dname bark ];
    }else {
        // 睡觉
        [
_dname sleep ];
    }
}
@end
Dog.h文件:
#import <Foundation/Foundation.h>
@interface Dog : NSObject
{
   
NSString *_dname;
   
NSString *_color;
}
// 自定义初始化方法
- (
id )initWithDname:( NSString *)dname WithColor:( NSString *)color;
// 设置器
- (
void )setDname:( NSString *)dname;
- (
void )setColor:( NSString *)color;
// 访问器
- (
NSString *)dname;
- (
NSString *)color;
// 行为方法
- (
void )run;
- (
void )pickup;
- (
void )bark;
- (void)sleep;
@end
Dog.m文件:
#import "Dog.h"
@implementation Dog
#pragma mark - Set
- ( id )initWithDname:( NSString *)dname WithColor:( NSString *)color
{
   
self = [ super init ];
   
if ( self ) {
       
_dname = dname;
       
_color = color;
    }
   
return self ;
}
// 设置器
- (
void )setDname:( NSString *)dname
{
   
_dname = dname;
}
- (
void )setColor:( NSString *)color
{
   
_color = color;
}
#pragma mark - Get
- ( NSString *)dname
{
   
return _dname ;
}
- ( NSString *)color
{
   
return _color ;
}
// 行为方法
- (
void )run
{
   
NSLog ( @" 跑! " );
}
- (
void )pickup
{
   
NSLog ( @" 捡球! " );
}
- (
void )bark
{
   
NSLog ( @" 叫! " );
}
- (
void )sleep
{
   
NSLog ( @" 睡觉! " );
}
@end
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值