1、局部变量:在方法内定义的变量称为“局部变量”或“临时变量”,方法结束后局部变量占用的内存将被释放。
2、成员变量:在类体的变量部分中定义的变量,也称为字段。
3、全局变量:全局变量,又称“外部变量”,它不是属于哪个方法,作用域从定义的地址开始到源文件结束。
4、局部变量和成员变量主要是他们作用域的区别:
成员变量个是类内部;局部变量是定义其的方法体内部(或者方法体内部的某一程序块内——大括号,主要看定义的位置)。
成员变量可以不显式初始化,它们可以由系统设定默认值;局部变量没有默认值,所以必须设定初始赋值。
在内存中的位置也不一样。成员变量在所在类被实例化后,存在堆内存中;局部变量在所在方法调用时,存在栈内存空间中。
你仔细看JAVA基础,JAVA局部变量都必须给初始值的,你用ELSE的语句话 ,Result 始终会在Return的时候初始化一个值,因为不是if 分支就是else分支。而你用Else If 语句的话,如果你输入的Index<0 就不会进入任何分支,所以你返回的时候编译器就认为语法错误。publicclassTest{privateStringname//成员变量,也是全局变量
publicvoidchangeName(){
Stringn="tomoya"//n就是局部变量
name=n
}
}
总的来说,定义在类里的,也就是name那个位置,就是成员变量,在JAVA里全局变量和成员变量是一个意思。
定义在方法里或域里就叫做局部变量,所谓域就是{}里面,比如
publicvoidshow(){
intb=2//局部变量
if(true){
inta=1//局部变量
}
//这个位置访问a,无效
}
//这个位置,或其他方法里访问b,无效
他的作用范围:
局部变量离开了他的域{}就无效
成员变量的范围依赖他的访问修饰符,什么是访问修饰符呢?
public
protected
private
默认,你定义时不给他访问修饰符就是默认
至于他们的范围,请自行查资料,不动脑筋是不行滴
这种东西确实如1L所说的,再烂的书也会有介绍