Object-C 学习笔记 3 接口分离

本文详细介绍了使用Objective-C进行接口分离的实际操作,包括如何在不同的.m和.h文件中定义和实现类的方法,以及如何在主文件中实例化并调用这些方法。通过具体的代码示例,展示了接口分离在提升代码可读性和维护性方面的作用。

                                        Object-C 学习笔记  接口分离

 

//
//  main.m
//  接口分离
//
//  Created by game912 on 2018/12/20.
//  Copyright © 2018年 john. All rights reserved.
//

#import <Foundation/Foundation.h>
//导入类所在的头文件 (类的名字和文件名字不一定是 一样的 可以不一样)。当前示例是一样的
#import "Person.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        NSLog(@"Hello, World!");
        
        Person* p = [[Person alloc] init];
        
        [p setName:@"王二小"];
        //NSLog(@"name  =%@",  [p name]);
        
        
        //[p setAge:21];
        //NSLog(@"name  =%f",  [p age]);
    }
    return 0;
}
//
//  Person.h
//  接口分离
//
//  Created by game912 on 2018/12/20.
//  Copyright © 2018年 john. All rights reserved.
//

#import <Foundation/Foundation.h>
// .h文件 声明类的功能 和 添加类的成员变量
@interface Person : NSObject
{
    NSString* _name;
    NSInteger _age;
}

//声明类的功能
-(void) setName:(NSString*) name;
-(NSString*) name;



@end

 

 

//
//  Person.m
//  接口分离
//
//  Created by game912 on 2018/12/20.
//  Copyright © 2018年 john. All rights reserved.
//

#import "Person.h"

@implementation Person

-(void) setName:(NSString*) name
{
    _name = name;
    
    ///在类的内部  可以调用 头文件里没有声明的方法
    ///想要在外部调用 就必须在头文件里声明
    //[self setAge:16];
    
}

-(NSString*) name
{
    return _name;
}


-(void) setAge:(NSInteger) age
{
    _age = age;
}

-(NSInteger) age{
    return _age;
}

@end

一般会把 一个类 和类的实现放在单独的 文件中 这样有利于项目后期的 维护

导入类所在的头文件  #import 

对于OC 类的名字 和类所在的 文件名字 没有 强制 一样

(类的名字和文件名字不一定是 一样的 可以不一样)。当前示例是一样的

 

类的声明中 没有声明函数出现的 类的 实现中。 该函数只能在该类的实现中访问

想要在外部访问!必须咋 类的声明中 声明

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nicepainkiller

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值