美文网首页八天学会OC
第04天OC语言(01):私有变量和私有方法

第04天OC语言(01):私有变量和私有方法

作者: liyuhong | 来源:发表于2017-07-21 17:27 被阅读9次
    • 不要等到明天,明天太遥远,今天就行动。
    须读:看完该文章你能做什么?

    声明私有变量和私有方法

    学习前:你必须会什么?(在这里我已经默认你具备C语言的基础了)

    什么是变量,什么是方法


    一、本章笔记
     一.
         写在.m里面的变量 和 方法
         可以称之为私有变量 和 私有方法
     二.
        如果只有方法的实现,没有方法的声明,那么该方法就是私有方法
        在OC中没有真正的私有方法, 因为OC是消息机制
     三.强制调用 一个类没有公开的<私有方法>
        方式1
         id pp = [Person new];
         [pp test];
        方式2
        [p performSelector:@selector(test)];
    
    二、code
    main.m
    #pragma mark 01-私有变量和私有方法
    #pragma mark 概念
    #pragma mark - 代码
    #import <Foundation/Foundation.h>
    #pragma mark 类
    #import "Person.h"
    #pragma mark - main函数
    int main(int argc, const char * argv[])
    {
        Person *p = [Person new];
        // 无论使用 什么变量修饰符 修饰成员变量, 我们都可以在其他类中 看到这个变量
        // 只不过 有的修饰符 修饰的变量 我们不能操作而已
    //    p->_age;
    //    p->_height;
    //    p->_name;
    //    p->_weight;
        // [p test]; // No visible @interface for 'Person' declares the selector 'test'
        
    #warning 强制调用 一个类没有公开的<私有方法>
    //    id pp = [Person new];
    //    [pp test];
        
        [p performSelector:@selector(test)];
        return 0;
    }
    
    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
    >>>.m
    #import "Person.h"
    
    @implementation Person
    {
        // 实例变量(成员变量) 既可以在@interface中定义, 也可以在@implementation中定义
        // 写在implementtation中的成员变量, 默认就是私有的变量, 并且 和 利用@private修饰的不太一样,在@implementation中定义的成员变量 在其它类中无法查看,也无法访问
        
        // 在@implementtation中定义的私有变量 只能在本类中访问
        @public
        double _score;
    }
    
    - (void)test
    {
        NSLog(@"score %f",_score);
    }
    @end
    

    相关文章

      网友评论

        本文标题:第04天OC语言(01):私有变量和私有方法

        本文链接:https://www.haomeiwen.com/subject/jfwvhxtx.html