Obhective-C_OC中的方法

本文介绍了Objective-C中的方法概念,包括实例方法和类方法的定义、实现与调用方式。并通过具体示例展示了如何使用这些方法。

OC方法

实例化方法

main.c

#import <Foundation/Foundation.h>
#import "Person.h"
#import "Student.h"
#import "Teacher.h"
#import "NewStudent.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
       
        /*
         OC中的方法
         设置器与访问器
         便利初始化函数 以及 便利构造器
         属性
         */
        
        //OC中的方法
        //实例方法
//        Person *personA = [Person new];
//        Person *personA = [[Person alloc]init];
        Person *personA = [Person alloc];
        personA = [personA init];   //实例方法
        
        //如何调用使用实例方法?
        [personA sayHello];

        [personA sayHelloName:@"Rick" andAge:25];
        
        //如何调用类方法?
        [Person sayHi];

        [Person hiGuys];
        
    }
    return 0;
}

Person.h

#import <Foundation/Foundation.h>

@interface Person : NSObject
{
    NSString *_name ;
    NSInteger _age;
    NSString *_hobby;

}

/*
 OC中的方法
 方法: 是类的功能代码,在(.h)文件中声明,在(.m)文件中实现。
 语法:
    -|+ (返回类型) 方法名:参数列表
    {
        //方法体
    }
 
 减号(-)表示实例方法,加号(+)表示类方法
 */

-(void)sayHello;    //实例方法

-(void)sayHelloName:(NSString *)name
             andAge:(NSInteger)age ;    //实例方法

//类方法
/*
 注意:
 1.类方法可以调用类方法
 2.类方法不可以调用实例方法,但是类方法可以通过创建实例对象来访问实例方法
 3.类方法不可以使用实例变量。类方法可以使用self,因为self不是实例变量
 4.类方法作为消息,可以被发送到类里面去,不能发送到对象里面去
 */
+(void)sayHi ;

+(void)hiGuys ;

@end

Person.m

#import "Person.h"

@implementation Person

-(void)sayHello
{
    NSLog(@"sayHello!");
}

-(void)sayHelloName:(NSString *)name andAge:(NSInteger)age
{
    NSLog(@"Hello guys!My name is %@,I am %ld years old!",_name,_age);
}

//类方法
+(void)sayHi
{
    NSLog(@"sayHi!");
}

/*
 注意:
 1.类方法可以调用类方法
 2.类方法不可以调用实例方法,但是类方法可以通过创建实例对象来访问实例方法
 3.类方法不可以使用实例变量。类方法可以使用self,因为self不是实例变量
 4.类方法作为消息,可以被发送到类里面去,不能发送到对象里面去
 */
+(void)hiGuys
{
    //1.类方法可以调用类方法,通过self调用
    //self 是什么? self 代表当前对象的指针
    [self sayHi];
    
    //2.类方法不可以调用实例方法,但是类方法可以通过创建实例对象来访问实例方法
//    [self sayHello];
    
    Person *p = [[Person alloc]init];
    [p sayHello];
    
    //3.类方法不可以使用实例变量。类方法可以使用self,因为self 不是实例变量
    
//    NSLog(@"hi,My name is %@,age is %ld,hobby is %@",_name,_age,_hobby);
    
    
}

@end


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值