oc25--私有变量私有方法

Posted 672530440

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oc25--私有变量私有方法相关的知识,希望对你有一定的参考价值。

//
//  Person.h

#import <Foundation/Foundation.h>

@interface Person : NSObject
{
    @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中定义, 也可以在@implementation中定义
    // 写在@implementation中的成员变量, 默认就是私有的成员变量, 并且和利用@private修饰的不太一样, 在@implementation中定义的成员变量在其它类中无法查看, 也无法访问
    
    // 在@implementation中定义的私有变量只能在本类中访问(私有变量:private修饰,.m文件中写)
    double _score;
}

- (void)test
{
    NSLog(@"score = %f", _score);
}
@end
//
//  main.m

#import <Foundation/Foundation.h>
#import "Person.h"

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

    Person *p = [Person new];
    // 无论使用什么成语变量修饰符修饰成员变量, 我们都可以在其它类中看到这个变量
    // 只不过有得修饰符修饰的变量我们不能操作而已
//    p->_age;
 //   p->_height;
//    p->_name;
    NSLog(@"%f",p->_weight);
//    [p test];
    
    /*
    id pp = [Person new];
    [pp test];
    
    [p performSelector:@selector(test)];
    */
    return 0;
}

 

以上是关于oc25--私有变量私有方法的主要内容,如果未能解决你的问题,请参考以下文章

Object-C 中私有变量和私有方法

C#-WebForm-★内置对象简介★Request-获取请求对象Response相应请求对象Session全局变量(私有)Cookie全局变量(私有)Application全局公共变量Vi(代码片段

2-1 OC 类别(分类)

为啥我不能在 main 方法中调用私有变量?

iOS动态性 运行时runtime初探(强制获取并修改私有变量,强制增加及修改私有方法等)

是否可以访问私有静态变量和方法?