OC语言day04-01私有变量和私有方法

pragma mark 私有变量和私有方法

pragma mark 概念

pragma mark 代码

#import 
#pragma mark 类
#import "Person.h"
#pragma mark main函数
int main(int argc, const char * argv[])
{
    
    Person *p = [Person new];
#warning 私有的成员变量 (两种方法 1.使用关键字声明, 2.)
    // 无论是用什么成员变量修饰符 修饰成员变量, 我们都可以在其他类中看到这个变量
    // 只不过有得 修饰符的变量我们不能 操作而已
//    p->_age;
//    p->_height;
//    p->_name;
//    p->_weight;
    
//    [p test];
    
#warning 调用私有的方法
//    id pp = [Person new];
//    [pp test];// 找不到私用的类
    
    [p performSelector:@selector(test)];
    return 0;
}




Person.h // 人类
#import 

@interface Person : NSObject
{
#warning 私有成员变量 方式1 使用@protected、@private定义
    @public
    int _age;
    @protected
    double _height;
    @private
    NSString *_name;
    @package
    double _weight;
}

// 如股票只有方法的实现, 没有方法的声明,那么该方法就是私有方法
// 在OC没有真正的保护私有方法,因为OC是消息机制
//- (void)test;

@end
Person.m
#import "Person.h"

@implementation Person
{
    // 实例变量(成员变量) 既可以在@interface中定义, 也可以在@implimentation中定义    
#warning 写在@implementation 中的成员变量,默认就是私有的成员变量,并且和利用@private修饰的不太一样, 在implementation中定义的成员变量在其他类中无法查看,无法访问
    // 在@implementation 中定义的私有变量 只能在本类中访问
@public;
    double _score;  // 分数
}

- (void)test
{
    NSLog(@"score %f",_score);
}
@end

你可能感兴趣的:(OC语言day04-01私有变量和私有方法)