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 ;
{
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 ;
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);
@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 ;
return 0 ;
}
Person.h文件:
#import
<Foundation/Foundation.h>
#import "Dog.h"
@interface
Person :
NSObject
{
NSString *_pname;
{
NSString *_pname;
Dog *_dname;
}
// 设置器
- ( void )setPname:( NSString *)pname;
// 设置器
- ( void )setPname:( NSString *)pname;
- (void)setDname:(Dog *)dname;
//
访问器
- ( NSString *)pname;
- ( 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 - Set
- ( void )setPname:( NSString *)pname
{
_pname = pname;
}
- ( void )setDname:( Dog *)dname
{
_dname = dname;
}
#pragma mark - Get
- ( NSString *)pname
{
return _pname ;
}
- ( Dog *)dname
{
return _dname ;
- ( 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 ];
- ( void )liuGou:( NSInteger )time
{
if (time == 9 ) {
// 跑
[ _dname run ];
} else if (time == 10 ) {
// 捡球
[ _dname pickup ];
} else if (time == 11 ) {
// 逗狗叫
[ _dname bark ];
}else
{
//
睡觉
[ _dname sleep ];
[ _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;
@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 - 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 *)dname
{
return _dname ;
}
- (
NSString
*)color
{
return _color ;
{
return _color ;
}
//
行为方法
- ( void )run
{
NSLog ( @" 跑! " );
}
- ( void )pickup
{
NSLog ( @" 捡球! " );
}
- ( void )bark
{
NSLog ( @" 叫! " );
}
- ( void )sleep
{
NSLog ( @" 睡觉! " );
}
@end
- ( void )run
{
NSLog ( @" 跑! " );
}
- ( void )pickup
{
NSLog ( @" 捡球! " );
}
- ( void )bark
{
NSLog ( @" 叫! " );
}
- ( void )sleep
{
NSLog ( @" 睡觉! " );
}
@end