第01天OC语言(13):方法和函数的区别
第01天OC语言(13):方法和函数的区别
lyh2017iOS 发表于5个月前
第01天OC语言(13):方法和函数的区别
  • 发表于 5个月前
  • 阅读 1
  • 收藏 0
  • 点赞 0
  • 评论 0

#####一、概念


/*
 函数 和 方法的 区别
  1.函数属于整个文件, 方法属于某一个类
    方法如果离开类 就不行
  2.函数可以直接调用
 注意 :  虽然函数属于整个文件,但是如果把函数 写在 类的声明中 会不识别
 方法的注意点 : 
    方法可以没有声明 只有实现
    方法可以只有声明没有实现,编译不会报错,但是运行会报错
     如果方法 只有声明 没有实现, 那么运行时会报错 :  reason: '+[Person demo]: unrecognized selector sent to class 0x100001140' ---class
    发送了一个不能识别的消息, 在Person类中 没有+开头的 demo方法
 reason: '-[Person test]: unrecognized selector sent to instance 0x100103560' ---instance
 
 类也有一个注意点 : 
 类 可以只有实现 没有声明
 注意 : 在开发中 不建议这样写
 */

#####二、代码

#import <Foundation/Foundation.h>
#pragma mark 类

//@interface Person : NSObject
//// 对象方法声明
//- (void)test;
//// 类方法声明
////+ (void)demo;
//
//
///*
//// 外部函数声明
//extern void sum();
//// 内部函数声明
//static void minus();
//// 外部函数
//extern void sum()
//{
//    printf("sum");
//}
//// 内部函数
//static void minus()
//{
//    printf("minus");
//}
// */
//
//@end

@implementation Person :NSObject
// 对象方法实现
- (void)test
{
    NSLog(@"test");
}
// 类方法实现
+ (void)demo
{
    NSLog(@"demo");
}

@end

#pragma mark 函数
// 外部函数声明
extern void sum();
// 内部函数声明
static void minus();
// 外部函数
extern void sum()
{
    printf("sum");
}
// 内部函数
static void minus()
{
    printf("minus");
}

#pragma mark main函数
int main(int argc, const char * argv[])
{
//    demo();
//    [Person sum];
//    [Person demo];
//    [Person demo];
    Person *p = [Person new];
    [p test];


    return 0;
}

image.png

image.png

image.png

image.png

image.png

image.png

标签: OC语言
共有 人打赏支持
粉丝 2
博文 354
码字总数 137380
×
lyh2017iOS
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: