Object-C 中变量的作用域

IOS中,修饰变量的关键字有四个,分别是:

 1  @public 

被这个关键字修饰的变量是完全开放的,只要有这类的对象存在,就可以访问到这个变量。

 2  @protected 

被这个关键字修饰的变量是受保护的,只有在声明变量的这个类中和它的子类中,可以访问。

 3  @private 

被这个关键字修饰的变量是私有的,只能在声明这个变量的类中使用,子类也不能使用。

 4  @package

这个关键字比较难理解,大致意思是被修饰的变量是封装的,在本框架内可以自由使用,效果和@public 相同,而在框架外不能使用,其子类也不能使用,效果又相当于@private。

因为@package的这种特点,它非常适用于franework框架。

一点扩展:

访问类中的变量,我们可以用->符号,它和点语法的区别在于,点语法实际上是调用的set与get方法,而->符号是直接访问变量。

时间: 2024-10-15 05:03:31

Object-C 中变量的作用域的相关文章

JS中变量的作用域

js中变量的作用域 js中变量的作用域分为全局变量和局部变量,函数内定义的称为局部变量,函数外的称为全局变量.("函数外的称为全局变量"是相对的,另此处讨论的前提是用var显式声明的变量,函数内不用var定义的变量默认是全局变量,当然忽略var声明变量是不赞成的). view sourceprint?1 var glob = 4;//函数外声明全局变量  2 function fun() {  3     var height = 20; //函数内用var声明的是局部变量  4   

java栈中变量的作用域与内存回收问题上的一点小疑问?

问题描述 一个类的实例方法public void test(){ //dosomethings ... for(int i=0;i<100;i++){ //dosomethings ... } //dosomethings.....}这段方法在执行时,变量i的作用域在for循环块中,当出了for循环块以外,变量i失效.但是我想问一下,当出了for循环块以后,变量i的所在内存是否会被回收.也就是说是否在此test方法的栈帧出栈之前被回收? 解决方案 当调用一个java方法时,产生一个帧,帧里面包括

JavaSript中变量的作用域闭包的深入理解_javascript技巧

复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <script type="text/javascript"> /* * 1.js中的变量都是公用的. 2.js中没有静态变量 3.闭包:函数内部可以调用函数外部的变量;反之,则不行 */ v

Python中的变量和作用域详解_python

作用域介绍 python中的作用域分4种情况: L:local,局部作用域,即函数中定义的变量: E:enclosing,嵌套的父级函数的局部作用域,即包含此函数的上级函数的局部作用域,但不是全局的: G:globa,全局变量,就是模块级别定义的变量: B:built-in,系统固定模块里面的变量,比如int, bytearray等. 搜索变量的优先级顺序依次是:作用域局部>外层作用域>当前模块中的全局>python内置作用域,也就是LEGB. x = int(2.9) # int bu

java中的变量的作用域问题

问题描述 java中的变量的作用域问题 新人初学java,在变量的作用域这里卡了下 我知道全局变量和局部变量,但是如果我在main的开头就申明了一个变量,那这个变量应该是全局变量吧,下面所有的方法都可以调用这些变量,但是如果我在main函数中间申明了一个变量,那这个变量算什么?还算是全局变量吗?是不是只有后面的方法才能使用它,而在他之前的就不能用? 还有一个问题: File tmp; while(!list.isempty()){ tmp = (File)list.removeFirst ...

不错的JS中变量相关的细节分析_javascript技巧

这里讨论一下我对Javascript中变量相关细节的认识,有不当之处欢迎来批. 一.变量的类型 Javascript和Java.C这些语言不同,它是一种无类型.弱检测的语言.它对变量的定义并不需要声明变量类型,我们只要通过赋值的形式,可以将各种类型的数据赋值给同一个变量.例如: i=100;//Number类型 i="variable";//String类型 i={x:4};//Object类型 i=[1,2,3];//Array类型 JS的这种特性虽然让我们的编码更加灵活,但也带来了

JavaScript 学习笔记之变量及其作用域_基础知识

一.变量 ECMAscript变量是松散型变量,所谓松散型变量,就是变量名称可以保存任何类型的数据,每个变量仅仅是一个用于保存值的占位符. 定义:var firstDemo; 二.变量的作用域 2.1基本概念 使用var 定义变量:定义该变量的作用域的局部变量,这种定义变量的方法也被成为显式声明. 这么说不理解的话可以看看下面这个简单粗暴的例子: 复制代码 代码如下: test(); function test(){ var firstDemo="hello";//定义局部变量    

js变量的作用域详解

量的作用范围又称为作用域,是指某变量在程序中的有效范围.根据作用域,变量可以分为全局变量和局部变量. 1  全局变量的作用域是全局性的,即在整个网页特效程序中,全局变量处处都在. 2  而在函数内部声明的变量,只在函数内部起作用.这些变量是局部变量,作用域是局部性的:函数的参数也是局部性的,只在函数内部起作用. 相信大家都知道,javascript中变量作用域只有两种,全局作用域与函数中的局部作用域(有人认为不同script节点间也存在一种作用域,称之为段作用域,理由是在后面的script的节点

关于javascript中变量作用域理解

现在就结合网上的一篇文章在重新回顾下作用域这个东西吧. 作用域和上下文并不是同一个东西,很多人可能会把它搞混.每一个函数调用都联系着一个作用域和一个上下文.根本上来说,作用域是基于函数的而上下文是基于对象的.换句话说,作用域与函数调用是能够获取的变量有联系,它对与每一次调用来说都是独一无二的.上下文常常代表this变量的值,它指向"拥有"当前执行的这段代码的对象. 变量作用域 一个变量的作用域是程序源代码中定义这个变量的区域.全局变量拥有全局作用域,在js代码里的任何地方都是有定义的.