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

  • 不要等到明天,明天太遥远,今天就行动。

#####须读:看完该文章你能做什么?

声明私有变量和私有方法

#####学习前:你必须会什么?(在这里我已经默认你具备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

转载于:https://my.oschina.net/u/3561184/blog/1377176

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值