什么是java的局部变量、成员变量和全局变量?

Python012

什么是java的局部变量、成员变量和全局变量?,第1张

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所说的,再烂的书也会有介绍