【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;
{
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;
NSString*_dname;
NSString*_color;
}
//自定义的初始化方法----》狗名、狗颜色
- (id)initWithDname:(NSString*)dname Color:(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;
- (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;
}
//自定义的初始化方法----》狗名、狗颜色
- (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(@"睡觉!");
}
- (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;
}
- (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;
NSString*_pname;
Dog *_dog;
}
//set方法
- (void)setPname:(NSString*)pname;
- (void)setDog:(Dog*)dname;
//get方法
- (NSString *)pname;
- (Dog *)dog;
- (NSString *)pname;
- (Dog *)dog;
//遛狗方法
- (void)liugou;
- (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;
}
}
- (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];
@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
- 【OC-2】OC语言基础二(自定义初始化、点语法)(连载二)
- OC学习笔记二(点语法)
- oc语法的基础(二)
- OC语言(二)
- OC语言(二)
- OC基础(二)
- OC核心语法(二)
- 连载二 初学OC
- 走进OC连载二
- iOS战记 ----OC基础语法之战(二)
- 黑马程序员-OC回顾-基础语法(二)
- OC语言笔记(四):OC点语法、继承、类别
- 黑马程序员-OC语言基础:面向对象语法 二
- OC语言--点语法
- 黑马程序员---OC特有语法(二)
- OC语言笔记(二):OC字符串操作
- OC特有语法<二>
- OC语言--基础语法
- Kubernetes 源码编译以及源码基于libvirt/kvm的coreos集群测试介绍
- 2014届华为校园招聘机试题
- OA系统常见的审批流程
- 单链表的逆转
- 2013届华为校园招聘机试题
- 【OC-2】OC语言基础二(自定义初始化、点语法)(连载二)
- 2012届华为校园招聘机试题
- 4个工人有4个任务
- 【OC03-1】面向对象——封装、继承、多态(连载三)
- 协变covariant[+T] 逆变contravariant[-T]
- 黑马程序员--iOS--C基础(结构体)
- 文件与目录
- dump_stack的简单使用
- css的伪类别