黑马程序员——Objective-C——点语法、变量的作用域

———Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ———

 

一、点语法

1>点语法的本质

点语法的本质是set和get方法的方法调用,而不是访问成员变量,当使用点语法时,编译器会自动展开成相应的方法。切记点语法的本质是转换成相应的set和get方法,如果没有set和get方法,则不能使用点语法。

2>使用注意:

a. set方法中:self.name = name;这种写法会形成死循环,因为self.name就是在调用name的set方法。

b. get方法中:return self.name;这样也会形成死循环,因为self.name是在调用name的get方法。

3>实例

// 创建一个Person对象
Person *person = [Person new]; 

// 使用点语法对person对象的name属性进行赋值
person.name = @”gouDan”;  // 和[person setName:@”gouDan”];的效果一样

// 使用点语法获取person对象的name属性值
NSString *s = person.name;  // 这里是get方法,相当于[person name];

二、变量的作用域

1>变量的作用域有四种:public、protected、private、package

@public  (公共的)在有对象的前提下,任何地方都可以直接访问


@protected(受保护的)只能在当前类和子类的对象方法中访问
(默认就是protect)

@private (私有的)只能在当前类的对象方法中才能直接访问


@package (框架级别的)作用域介于私有和公开之间,只要处于同一个框架中就可以直接通过变量名访问


2>实用注意:

a. 在类的实现即.m文件中也可以声明成员变量,但是因为在其他文件中通常都只是包含头文件而不会包含实现文件,所以在这里声明的成员变量是@private的。

b. 在@interface @end之间声明的成员变量如果不做特别的说明,那么其默认是protected的。

c. 一个类继承了另一个类,那么就拥有了父类的所有成员变量和方法,注意所有的成员变量它都拥有,只是有的它不能直接访问(private)。

3>写法:

@interface Person : NSObject
{
	@public
	int age;
	@protected  // 可以省略
	double weight;
	@private
	NSString *name;
	NSString *telephoneNumber;
	@package
	NSString *pk;
}
@end


1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值