java中成员变量和局部变量的区别
2014-08-17 15:16
281 查看
转自:http://blog.sina.com.cn/s/blog_742350ef0100qt42.html ———————————————————————————————————— 先看下面两段程序: 程序一: public class Variable { int i; void test() { int j=8; if(j==i) System.out.println("相等"); else System.out.println("不相等"); } public static void main(String[] args) { Variable v=new Variable(); v.test(); } } 程序二: public class Variable { void test() { int i; int j=8; if(j==i) System.out.println("相等"); else System.out.println("不相等"); } public static void main(String[] args) { Variable v=new Variable(); v.test(); } } ---------------------------------------------------------------------------------------------------------- 第一个程序很正常,编译时不会出错。第二个程序编译时会提示如下错误: D:\Program\java\test>javac Variable.java Variable.java:9: 可能尚未初始化变量 i if(j==i) ^ 1 错误 之所以会出现这样的错误是因为:成员变量有默认值,(被final修饰且没有static的必须显式赋值),局部变量不会自动赋值 =========================================================== 类体分为两部分。变量定义部分所定义的变量被称为类的成员变量,在方法体中定义的变量和方法的参数都被称为局部变量 java中成员变量和局部变量的区别1.成员变量可以被public,protect,private,static等修饰符修饰,而局部变量不能被控制修饰符及static修饰;两者都可以定义成final型2.成员变量存储在堆,局部变量存储在栈 3.存在时间不同 4.成员变量有默认值,(被final修饰且没有static的必须显式赋值),局部变量不会自动赋值 ------------------------------------------------------------------------------------------------------------- 顾名思意了 什么是局部,方法内部,块内部都是局部,执行指令退出那个局部,局部变量自动清除 比如方法中,不用说 块中 { int i=0; //这是一个局部变量,它的作用范围就在其中 } 成员变量就会涉及到谁的成员,类的成员?实例的成员? class A{ int i=0; //实例的成员 static j=1;//类的成员 } static 的差别,是否依赖于实例而存在 ---------------------------------------------------------------------------------------------------------- 成员变量:作为类的成员而存在,直接存在于类中。 局部变量:作为方法或语句块的成员而存在,存在于方法的参数列表和方法定义中。 局部变量在使用前必须被程序员主动的初始化,和此形成对比,系统中的成员变量则会被系统提供一个默认的初始值。所以在语法上,类的成员变量能够定义后直接使用,而局部变量在定义后先要赋初值,然后才能使用。 所有类的成员变量可以通过this来引用。成员变量又分成俩中类型:实例变量和静态变量。静态变量在定义时要使用static关键字。 |
相关文章推荐
- 关于JAVA语言中成员变量和局部变量的区别总结
- java基础-成员变量与局部变量的联系与区别
- JAVA_SE基础——26.[深入解析]局部变量与成员变量的区别
- JAVA中成员变量与局部变量的区别
- JAVA成员变量和局部变量的区别
- java之成员变量和局部变量的区别
- Java中成员变量和局部变量的区别
- Java中局部变量和成员变量的区别
- 【Java基础】成员变量和局部变量的区别
- 《java中局部变量和成员变量的区别》
- Java成员变量和局部变量的区别
- java中成员变量和局部变量的区别
- java中成员变量和局部变量的区别
- java中成员变量和局部变量的区别
- Java中局部变量和成员变量的几点区别
- Java中成员变量和局部变量的区别
- Java中成员变量和局部变量的区别
- Java基础——成员变量、局部变量和静态变量的区别
- Java基础——成员变量、局部变量和静态变量的区别
- Java中成员变量和局部变量的区别