概述
1、
静态全局变量和静态局部变量都是静态存
储方
式,
静态变量就是全局变量
;
2、
静态局部变量在函数内定义,但不像
自动变量
那样,当调用时就存
在,退出函数时就
消失。
静态局部变量始终存在着
,也就是说它的生存期为整个源程序。
3、
静态局部变量的生存期虽然为整个源程序,但是其
作用域
仍与自动变量相同,即只能在定义该变量的函数内使用该变量。退出该函数后, 尽管该变量还继续存在,但不能使用它。
4、
允许对构造类静态局部量赋初值。若未赋以初值,则由系统自动赋值。数值型变量自动赋初值0,字符型变量赋空字符。
5、对基本类型的静态局部变量若在说明时未赋以初值,则系统自动赋予0值。而对自动变量不赋初值,则其值是不定的。 根据静态局部变量的特点, 可以看出它是一种生存期为整个源文件的量。虽然离开定义它的函数后不能使用,但如再次调用定义它的函数时,它又可继续使用, 而且保存了前次被调用后留下的值。 因此,当多次调用一个函数且要求在调用之间保留某些变量的值时,可考虑采用静态局部变量。虽然用全局变量也可以达到上述目的,但全局变量有时会造成意外的副作用,因此仍以采用局部静态变量为宜。
public class StaticTest{
static int f=1;//java声明静态变量要放到函数外面,结果和c的结果一样
int fun(int n){
f = f * n;
return f;
}
public static void main(String[] args){
StaticTest st = new StaticTest();
for(int i = 1; i <= 5; i++)
System.out.println(st.fun(i));
}
}
6、 静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。在定义它的源文件中可以在调用其他源文件中方法时当做实参使用。
7、全局变量本身就是静态存储方式,虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。
8、从以上分析可以看出, 把局部变量改变为静态变量后是改变了它的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了它的作用域, 限制了它的使用范围。因此static 这个说明符在不同的地方所起的作用是不同的。应予以注意。
9、java中private,public,protected作用范围
转自:http://blog.csdn.net/disadministrator/article/details/50278043
转自:http://tydldd.iteye.com/blog/1732592
1、public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用
2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。
3、protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。
作用域 当前类 同一package 子孙类 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
不写时默认为friendly
一个在类A中被修饰为private的变量, 不能被传到b 类中用吧
最后
以上就是标致睫毛为你收集整理的static变量和方法特征,private,public,protected作用范围的全部内容,希望文章能够帮你解决static变量和方法特征,private,public,protected作用范围所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复