类中方法的声明,实现和调用
知识点:方法的声明;方法的实现;方法的调用。
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
@public
NSString *_name;
int _age;
}
//声明一个不带参数的方法
- (void)eat;
//声明带单个参数的方法
- (void)foodName:(NSString *)foodName;
//声明带多个参数的方法
- (int)sum:(int)num1 :(int)num2;
@end //Person
@implementation Person
- (void)eat
{
NSLog(@"我在吃东西呢");
}
- (void)foodName:(NSString *)foodName
{
NSLog(@"这个%@不错哟", foodName);
}
- (int)sum:(int)num1 :(int)num2
{
return num1 + num2;
}
@end //person
int main(int argc, const char * argv[]) {
//用Person类实例化出一个p1对象
Person *p1 = [Person new];
//对象调用不带参数的方法
[p1 eat];
//对象调用带一个参数的方法
[p1 foodName: @"苹果"];
//对象调用带多个参数的方法
int sum = [p1 sum:1 :2];
NSLog(@"sum = %d", sum);
return 0;
}
/*
类中方法的声明,实现和调用
1. 方法的声明
位置:方法在@interface定义属性的大括号之后,@end之前声明
语法:1)不带参数的方法 - (返回类型)方法名;
2)带单个参数的方法 - (返回类型)方法名:(参数类型)形参名;
3)带多个参数的方法 - (返回类型)方法名:(参数类型)形参名1 :(参数类型)形参名2 :(参数类型)形参名3;
2. 方法的实现
方法经过声明之后还不能调用,需要经过实现
位置:方法在@implementation和@end之间实现
语法:1)不带参数的方法
- (返回类型)方法名
{
代码
}
2)带单个参数的方法
- (返回类型)方法名:(参数类型)形参名
{
代码
}
3)带多个参数的方法
- (返回类型)方法名:(参数类型)形参名1 :(参数类型)形参名2 :(参数类型)形参名3
{
代码
}
(返回类型与方法名均与声明时一致,和方法的声明相比,末尾没有分号)
3. 方法的调用
1)方法是无法直接调用的,需要先创建一个对象。
2)语法:
a.调用不带参数的方法:[对象名 方法名];
b.调用带单个参数的方法:[对象名 方法名:参数];
c.调用带多个参数的方法:[对象名 方法名:参数1 :参数2 :参数3];
*/
查看控制台输出结果:

注意事项
#import <Foundation/Foundation.h>
@interface Person : NSObject
{
@public
NSString *_name;
int _age;
}
- (void)selfInfo;
@end //Person
@implementation Person
- (void)selfInfo
{
//此方法的实现中直接访问了_name和_age属性
NSLog(@"大家好,我是%@,今年%d岁啦~", _name, _age);
}
@end //person
int main(int argc, const char * argv[]) {
//用Person类实例化出一个p1对象
Person *p1 = [Person new];
p1->_name = @"Emun";
p1->_age = 20;
[p1 selfInfo];
//用Person类实例化出一个p1对象
Person *p2 = [Person new];
p2->_name = @"棠念";
p2->_age = 18;
[p2 selfInfo];
return 0;
}
/*
有关类的注意事项
1.同一个类可以创建无数个对象,同一个类的多个对象之间毫无关系,不同对象之间的属性值不会互相影响。
2.在方法的实现中,可以直接访问属性;那在不同对象调用该方法时,属性值到底是谁的呢?
注意:一个对象通过方法访问到的属性值是该对象自身的属性值
3.注:为了增加语法上的可读性,带多个参数的方法定义时方法名可去xxxWith,如:
例一:
定义时-- (void)eatWith:(NSString *)foodName;
调用时-- [p1 eatWith: @"苹果"];
或
定义时-- (void)eatWithFood:(NSString *)foodName;
调用时-- [p1 eatWithFood: @"苹果"];
例二:
定义时-- - (int)sumNumOne:(int)num1 andNumTwo:(int)num2;
调用时-- [p1 sumNumOne:15 andNumTwo:26];
*/
查看控制台输出结果:

加油~~
本文详细讲解Objective-C中类方法的声明、实现和调用过程,并强调了使用时的注意事项,通过实例展示了控制台输出结果。
365

被折叠的 条评论
为什么被折叠?



