-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 : NS 
{
    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 类的名字 和类所在的 文件名字 没有 强制 一样

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

 

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

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

 

 

收藏 打印