黑马程序员技术交流社区
标题:
java中局部变量和全局变量的区别?
[打印本页]
作者:
蒋昌宏
时间:
2012-2-22 21:09
标题:
java中局部变量和全局变量的区别?
{
int b;
i=b;//在这里会提示你没有初始化
{
b=8;
System.out.println("二级作用域"+b);
}
System.out.println("一级作用域"+b);
}
问题 :java中局部变量和全局变量的区别?
作者:
周峰
时间:
2012-2-22 21:22
第1个问题:你需要初始化一个值 一般是 int b =0;
第2个问题:全局变量是在整个类中可以直接调用,局部变量只能在方法中调用!或者是声明在 for 循环 里面 那就只能在for循环里面使用 其他方法是调用不到局部变量的~
作者:
陈伟
时间:
2012-2-22 21:36
类体由2部分构成:
一部分是变量的定义;
一部分是方法的定义(一个类中可以有多个方法)
在变量部分定义的变量叫做类的成员变量,成员变量在整个类中都有效.
(全局变量应该是成员变量的俗称)
在方法体中定义的变量叫做局部变量,局部变量只在定义它的方法中有效.
成员变量又分为 实例变量 和 类变量(static静态变量).
class One
{ float x; //x为实例变量
static int y; //只要有关键字static,y为类变量
}
作者:
H07000223
时间:
2012-2-22 21:45
简单地说:就是一个定义在类里面,一个定义在类的方法里面~~~亲
作者:
李晓俊老师
时间:
2012-2-22 21:56
局部变量是定义在方法里面的变量,包括方法的参数列表中的变量,它的作用域就是它所在的那个函数的作用域,
即所在函数的两个大括号内,它都存在着,在内存中,局部变量和函数存在于栈内存,一旦函数执行完毕,函数就出栈
了,同时局部变量也随之消失,
全局变量又叫成员变量,生命周期是整个类,当整个程序结束后,类的生命期结束,全局变量也随之结束生命周期,它存在于
堆内存中
作者:
李晓俊老师
时间:
2012-2-22 21:57
而且,栈内存中的变量没有默认初始化值,所以必须进行手动初始化才能使用,
而堆内存中的成员变量都有默认初始化值,不用对其进行初始化操作就可以使用
作者:
黄凯
时间:
2012-2-22 21:59
局部变量和全局变量的区别主要是变量的作用域不同。
在一个类中定义了一个变量,这个类中的方法都可以访问这个变量,我们称这个变量为全局变量,它的作用域为整个类。
在一个类的方法或者内部代码块中定义了一个变量,这个变量只能作用在这个方法或者内部代码块;这个类中的其他方法
或者内部代码块是无法访问这个变量的,我们就称之为局部变量。
作者:
李会启
时间:
2012-2-22 21:59
局部变量它是 指在函数内部定义的变量 作用域为定义局部变量的函数 也就是说他只能在定义他的函数中使用,值得注意的是 只有在程序执行到定义他的模块时才能生成,一旦执行退出该模块则起变量消失。全局变量在程序执行的过程中一直有效。
Test()
{
int x=1;
}在这里x就是局部变量
int x=1
Test()
{
x=x+1;
}在这里上面定义的x就是全局变量
作者:
自己玩
时间:
2012-2-22 22:22
成员变量 指的是直接定义在类中的变量;成员变量时定义在类中成员中的变量
比如
class demo
{
int a,b;//这个就是成员变量 a,b的作用域是整个demo类
public void method()
{
int c;//局部变量 c的作用域是method方法中
}
}
成员变量的作用范围是整个类中,也就是在整个类中都可以使用
局部变量的作用域就只是在所在的成员中,一般就是定义该变量的方法
作者:
沈样
时间:
2012-2-22 22:25
java中局部变量和全局变量的区别? 我认为是范围不一样局部变量出了方法体就没有了,全局变量整个类中有效
作者:
王康
时间:
2012-2-23 11:06
package com.me;
/**
* 局部变量和全局变量的测试类
* @author 黑马_王康
*
*/
public class localAndWhole {
static int a = 66;//全局变量
static void test2() {
boolean flag = false;// flag是局部变量,他的有效范围市整个方法体
if (!flag) {
int a = 11;// 局部变量a,是必须进行初始化的且只在if块中有效
System.out.println("a1=" + a);
}
// a = 10;// 注意,这一行是会报编译错误:未声明变量a
}
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("a2=" + a);
int a = 20;//局部变量a
test2();
System.out.println("a3=" + a);
}
}
结果为:
a2=66
a1=11
a3=20
注意:
1,对于局部变量要先赋值后使用
2,局部变量局部有效,在定义这个变量的代码块也就是在“{}”中有效
3,在重合的有效范围内,不允许两个局部变量发生命名冲突。
作者:
VIP1108210117
时间:
2015-6-25 21:36
1.作用域不同,成员变量在类中,局部变量在方法中。
2.生命周期不同,成员变量在类对象创建到释放的过程中一直存在,而局部变量在方法被调用时创建,方法执行结束后被释放。
3.成员变量可以被public,protect,private,static等修饰符修饰,而局部变量不能被控制修饰符及static修饰;两者都可 以定义成final型
4.成员变量存储在堆,局部变量存储在栈
栈内存中的变量没有默认初始化值,所以必须进行手动初始化才能使用,
堆内存中的成员变量都有默认初始化值,不用对其进行初始化操作就可以使用
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2