OC分文件创建类

 

#import <Foundation/Foundation.h>

 

//声明一个类

@interface Person : NSObject

{

    NSString *_name;

    NSInteger _age;

}

 

//init方法

- (id)init;

 

//setter方法

- (void)setName:(NSString *)name;

- (void)setAge:(NSInteger)age;

- (void)setName:(NSString *)name andAge:(NSInteger)age;

 

//getter方法

- (NSString *)name;

- (NSInteger)age;

 

//print方法

- (void)print;

 

//类方法

+ (void)testPerson;

 

 

@end

 

 

 

//实现一个类

//ctrl+alt+ 上下键:快速切换.h .m文件

@implementation Person

 

- (id)init

{

    self = [super init];//super是调用父类方法的关键字

    if(self)//判断父类的构造方法是否初始化成功

    {

        _name = @"小飞";

        _age = 12;

    }

    return self;

}

 

- (void)setName:(NSString *)name

{

    _name = name;

}

 

- (void)setAge:(NSInteger)age

{

    _age = age;

}

 

//同时修改_name 及 _age实例变量的值

- (void)setName:(NSString *)name andAge:(NSInteger)age

{

    //实例变量的访问方式

    //1、直接访问,在类里面可以直接访问实例变量

    _name = name;

    _age = age;

    //2、间接访问:通过方法的调用来访问实例变量

    //self指针:代表自己

    [self setName:name];

    [self setAge:age];

    //3、通过self指针直接访问

    self->_name = name;

    self->_age = age;

    

}

 

//getter方法

- (NSString *)name

{

    return _name;

}

 

- (NSInteger)age

{

    return _age;

}

 

//打印方法

- (void)print

{

    //间接访问实例变量

    NSLog(@"name = %@, age = %li", _name, _age);

    NSLog(@"name = %@, age = %li", [self name], [self age]);

}

 

//类方法 测试当前类是否可用

+ (void)testPerson

{

    Person *per = [Person alloc];//alloc创建一个对象

    //创建一个对象后,一定要先初始化

    per = [per init];

    [per print];

    /*

     name = 小飞, age = 12

     */

    

    //对于一个对象只能初始化一次

    Person *per1 = [[Person alloc] init];

    

    //对象指针:保存对象的内存地址,通过对象的内存地址访问对象。对象指针通常在栈中。

    //对象:是alloc方法开辟的一块内存,通常开辟在堆当中

    //* :表示对对象的引用。也可以理解为C语言的指针说明符

    

    [per1 setName:@"小华" andAge:20];

    [per1 print];

    

}

 

@end

 

 

 

 

 

//c语言与OC语言区别

//1、在c语言中包含头文件用#include。OC包含头文件用#import

//2、c语言中为了防止头文件重复包含,需要用预编译器指令#infine XXX.h #define XXX.h #endif

//在OC语言中不需要预编译指令,不需要考虑重复包含

//3、C语言函数实现文件以.c结束  OC语言类的实现文件用.m结束

//4、OC语言完全兼容c语言

 

//分文件创建一个类

int main(int argc, const char * argv[]) {

    @autoreleasepool {

        [Person testPerson];

        

    }

    return 0;

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值