截屏2024-06-16 16.13.44.png

截屏2024-06-16 16.14.55.png


#import <Foundation/Foundation.h>


// Person 类的接口声明
@interface Person : NSObject
{
    @public //成员默认私有,需要加上public变为共有
    NSString *_name;
    int _age;
    float _height;
}
@end

//类的实现
@implementation Person


@end



int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        //新对象
        Person *p1 = [Person new];
        
        //指针空间指向 常用
        p1->_name = @"张三";
        p1->_age = 18;
        p1->_height = 188.9f;
        
        //第二种方式
        (*p1)._name = @"李四";
        (*p1)._age = 20;
        (*p1)._height = 180.0f;
        
        
        
        //打印
        NSLog(@"%@",p1->_name);
        
    }
    return 0;
}

无参数方法的声明和调用

// Person 类的接口声明
@interface Person : NSObject
{ 
} 

//定义(方法)函数
-(void) run;

@end

//类的实现
@implementation Person

//(方法)函数部分
-(void) run {
    NSLog(@"run run run");
}

@end



int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        //新对象
        Person *p1 = [Person new]; 
        [p1 run];
    }
    return 0;
}

有一个参数方法的声明和调用



// Person 类的接口声明
@interface Person : NSObject
//定义(方法)函数
-(void) eat:(NSString *)foodName;

@end

//(方法)类的实现
@implementation Person
 
-(void) eat:(NSString *)foodName
{
    NSLog(@"主人,喂我吃:%@",foodName);
}
@end



int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //新对象
        Person *p1 = [Person new];
        [p1 eat:@"答辩"];
    }
    return 0;
}

多个参数方法的声明和调用


// Person 类的接口声明
@interface Person : NSObject
//定义(方法)函数
-(void) eat:(int)day :(NSString *)foodName :(NSString *)foodName2;
@end

//(方法)类的实现
@implementation Person
 
-(void) eat:(int)day :(NSString *)foodName :(NSString *)foodName2
{
    NSLog(@"主人,喂我吃%d天的:%@和%@了",day, foodName, foodName2);
}
@end



int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //新对象
        Person *p1 = [Person new];
        [p1 eat:360:@"小零食":@"大便"];
    }
    return 0;
}