/*
1 定义一个类
分为声明和实现
@interface 类名 :NSObject{
属性。属性表示类的特征
}
方法的声明表示功能
@end
@implementation 类名
@end
2一类食物不仅有相同的特征还有相同的行为
行为就是功能。C语言中使用函数来表示一个功能
OC使用方法来表示一个功能
方法函数都表示一个功能
3 无参数方法
1)声明
位置。在interface大括号的外面
2)语法
-(返回值类型)方法名称;
-(void)run;
表示声明了一个无返回值无参数的方法,方法名字叫run
3)实现的方法
将方法声明拷贝到@implementation之中去掉分号,增加大括号 将方法实现写在代码中
3。 调用
a 方法是无法直接调用的。因为类无法直接使用 必须先创建对象
这个对象就有类中的属性和方法了,对象就可以调用方法了
b 调用对象的方法
[对象名 方法名];
代码:
Person *p =[Person new];
[p run];
4 带一个参数的方法
1)声明
a 位置。在interface大括号的外面
2)语法
-(返回值类型)方法名称:(参数类型)行参的名称;
-(void)eat:(NSString *)foodname;
定义了一个方法 这个方法没有返回值
方法名字叫eat
这个方法有一个参数类型为NSString *。名字为foodname
3)实现的方法
将方法声明拷贝到@implementation之中去掉分号,增加大括号 将方法实现写在代码中
3。 调用
a 方法是无法直接调用的。因为类无法直接使用 必须先创建对象
这个对象就有类中的属性和方法了,对象就可以调用方法了
b 调用对象的方法
[对象名 方法名:实参];
代码:
Person *p =[Person new];
[p eat:花生];
方法头里面的数据类型全要用小括弧括起来
-(返回值类型)方法名称:(参数类型)参数名称;
5 多个参数的方法
1 声明
a 位置
在interface大括号的外面
b语法
-(返回值类型)方法名称:(参数类型)行参的名称 :(参数类型)行参的名称 :(参数类型)行参的名称;
-(int)sum:(int ) num1 :(int ) num2;
表示声明了一个方法 这个方法的返回值是int类型的
方法的名称叫sum
两个参数 都int类型
实现
位置。 将方法声明拷贝到@implementation之中去掉分号,增加大括号 将方法实现写在代码中
调用‘
[对象名 方法名:实参:实参];
[p sum:1 :2];
6 带参数方法声明的规范
如果方法只有一个参数 要求最好这个方法的名字叫 xxxWith:
eat
eatWithxxx
eatWithFood
这样写调用方法时,看起来像一个完整的语句 提高代码的可读性
2 如果方法有多个参数
-(返回值类型)方法名:(参数类型1) 参数名字1 and:(参数类型2) 参数名字2;
-(int)sumWith:(int ) num1 and:(int ) num2;
//可读性更强
-(int)sumWithNum1:(int) num1 andNum2:(int) num2;
使用
int sum2 = [p sumWith: 1 and:4 ];
NSLog(@"sum2 = %d",sum2);
详细写法
-(返回值类型)方法名Whit参数名1:(参数类型1) 参数名字1 and参数名字2:(参数类型2) 参数名字2;
*/
#import <Foundation/Foundation.h>
@interface Person :NSObject{
NSString *_name;
int _age;
}
-(void)run;
-(void)eatWith:(NSString *)foodname;
//计算两个函数的值
-(int)sum:(int ) num1 :(int ) num2;
-(int)sumWith:(int ) num1 and:(int ) num2;
-(int)sumWithNum1:(int ) num1 andNum2:(int ) num2;
@end
@implementation Person
-(void)run{
NSLog(@"我是人,我在学习IOS开发");
}
-(void)eatWith:(NSString *)foodname{
NSLog(@"你给我的%@,真好吃",foodname);
}
-(int)sum:(int ) num1 :(int) num2{
int num3 = num1 + num2 ;
return num3;
}
-(int)sumWith:(int ) num1 and:(int ) num2{
int sum4 = num1 + num2;
return sum4;
}
-(int)sumWithNum1:(int ) num1 andNum2:(int ) num2{
int sum4 = num1 + num2;
return sum4;
}
@end
int main(int argc, const char * argv[]) {
@autoreleasepool {
Person *p =[Person new];
[p run];
//diaoyong 一个参数方法
[p eatWith:@"花生"];
[p sum:1 :2];
int sum = [p sum:1 :2];
NSLog(@"sum = %d",sum);
int sum2 = [p sumWith: 1 and:4 ];
NSLog(@"sum2 = %d",sum2);
int sum3 = [p sumWithNum1:3 andNum2:6];
NSLog(@"sum3 = %d",sum3);
}
}