06.黑马程序员-点语法、成员变量作用域

一、 点语法(编译器特性


1.    利用点语法替换set方法和get方法


a.    方法调用

Student *stu = [Student new];

[stu serAge:100];

int age = [stu age];

b.    点语法

Stu.age = 100;

int age = str.age;

2.    点语法的本质

a.    点语法的本质是方法调用

b.    当使用点语法时,编译器会自动展开成相应的方法

Stu.age = 10;        展开为

[stu setAge:10];
 
Int age = stu.age;          展开为
 
Int age = [stu age];
 

3.    死循环注意

 (void)setAge:(int)age
{
     // 下面代码会引发死循环
     self.age= age;        // [self setAge:age];
}

(void)age
{
     // 下面代码会引发死循环
     returnself.age; // return [self age];
}


二、 成员变量的作用域


1.    基本概念

局部变量、全局变量都有自己的作用域,成员变量也不例外


2.    类型

a.    @private:只能在当前类的实现@implementation中直接访问(@implementation中默认就是private)

b.    @protected:可以在当前类以及子类的实现@implementation中直接访问(@interface中默认就是protected)

c.    @public:任何地方都可以直接访问

d.    @package:同一个“体系内“(框架)可以访问,介于@private和@public之间


Ps:成员变量也可以定义在@implementation中,默认是私有的,跟关键字无关(就算在定义成员变量前加上@public也没用)


3.    @implementation补充

没有@interface,只有@implementation,也可以开发一个类(不建议这样写)

@implementation中不能定义和@interface中同名的成员变量

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值