文档章节

全局变量和局部变量的区别

Typing_Orange
 Typing_Orange
发布于 2017/04/15 15:52
字数 724
阅读 6
收藏 0


 

全局变量:也称 成员变量,是指在类中定义的变量;它在整个类中都有效

               全局变量又可分为:类变量和实例变量

               1.类变量:又叫静态变量  用static修饰  它可以直接用类名调用  也可以用对象调用   而且所有对象的同一个类变量都是共享同

                              一块内存空间的

               2.实例变量:不用static修饰  它只能通过对象调用  而且所有对象的同一个实例变量是共享不同的内存空间的

 

局部变量:是指那些在方法体中定义的变量以及方法的参数   它只在定义它的方法内有效





 

它们之间的区别主要如下:

  1. 在类中的位置不同:

    全局变量声明在类体中
    局部变量声明在方法体中 或者方法声明上。

  2. 在内存中的位置不同:

    成员变量在堆内存
    局部变量在栈内存
     
  3. 存在周期不同:

    成员变量是随着对象的创建而存在,随着对象的消失而消失
    局部变量是随着方法的调用而存在,随着方法的调用完毕而消失
     
  4. 初始化值不同:

    成员变量有默认初始化值 ,默认值为0。(被final修饰且没有static的必须显式赋值
    局部变量没有默认初始化值,必须由程序员主动定义,初始化赋值,然后才能使用。
     
  5. 可用修饰符类型不同

    成员变量可以被public,protect,private,static等修饰符修饰
    局部变量不能被控制修饰符及static修饰
    两者都可以定义成final型
     

参考代码如下:

package net.oschina;

public class VariableDemo {
	
	int memberVar1;//没有初始化值的成员变量 默认值为0
	int memberVar2 = 10;//有初始化值的成员变量
	
	public static void main(String[] args) {
		int localVar1;//没有初始化值的局部变量,没有默认初始化值。 直接使用会被系统提示报错
		int localVar2 = 30;//有初始化值的局部变量
		
		VariableDemo vd = new VariableDemo();//创建类的对象,用以访问该类的成员变量
		System.out.println("成员变量memberVar1的值是:"+vd.memberVar1);
		System.out.println("成员变量memberVar2的值是:"+vd.memberVar2);
		
// System.out.println("局部变量localVar1的值是:"+localVar1);
		System.out.println("局部变量localVar2的值是:"+localVar2);
	}

}

 

输出结果如下所示:

如果直接调用没有初始化赋值的局部变量localVar1,eclipse会报错,提示

造成这个提示的原因在于:系统不会给局部变量

 

注意:局部变量名称可以和成员变量名一样!

          如果某个方法中的局部变量的名字与全局变量的名字相同  则该全局变量在这个方法中暂时失效,此 举采用的是就近原则。 


 

 

 

 

 

© 著作权归作者所有

Typing_Orange
粉丝 15
博文 47
码字总数 30624
作品 0
南京
私信 提问
静态变量的定义理解——主要是C族语言static

“静态变量”这一术语有两个容易混淆的定义:(1)语言无关的通用定义:与程序有着相同生命周期的变量。(2)C族语言特有的定义:以static存储类声明的变量。 全局变量、局部(local)变量是...

BeerBread134
2017/11/29
0
0
C语言局部变量和全局变量问题汇总

1、局部变量能否和全局变量重名? 答:能,局部会屏蔽全局。要用全局变量,需要使用"::" 局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量。...

graylee
2013/10/28
0
0
JAVA局部变量与成员变量以及全局变量的区别

成员变量 定义:在类体的变量部分中定义的变量,也称为字段。 局部变量 定义:在方法内定义的变量称为“局部变量”或“临时变量”,方法结束后局部变量占用的内存将被释放。 全局变量 定义:...

xingyu4j
2018/09/25
0
0
static 变量 作用域 全局变量 局部变量 外部变量 常量 volatile变量

作用域 全局变量 局部变量 静态变量 外部变量 常量 volatile变量 作用域: 作用域规则告诉我们一个变量的有效范围,它在哪儿创建,在哪儿销毁(也就是说超出了作用域)。变量的有效作用域从它...

AlphaJay
2010/06/12
0
2
表达式与语句 局部变量与全局变量 exec与eval

Python有时需要动态的创造Python代码,然后将其作为语句执行 或 作为表达式计算。 exec用于执行存储在字符串中的Python代码。 1、 语句与表达式的区别:表达式是 某事,语句是 做某事(即告诉...

duhaizhang
2012/07/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

《生活的难题》的读后感3600字范文

《生活的难题》的读后感3600字范文: 假如我们对丑的事物也能够像对待美的事物那般抱持一种开放、接纳的心态,拥有相同的感受力,那么我们便会发现它们都是充满意义的,而这种认识会使生活变...

原创小博客
12分钟前
1
0
Linux learn(四)

7. Linux磁盘与文件系统管理 文件系统通常会将数据放在不同的区块,权限与属性放置到inode中,至于实际数据则放到datab lock区块中,另外,还有一个超级区块(superblock)会记录整个文件系统...

lazy~
20分钟前
1
0
微信公众号开发(四)

微信公众号开发时常需要一个用户授权绑定的过程。关于微信公众号的用户绑定,一般有如下两种实现方式: (1)通过发送短信验证码的方式; (2)使用用户登录时,向后端传递openid的方式。 使...

织梦之魂
今天
3
0
设计模式-工厂模式

工厂模式 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端...

HOT_POT
今天
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部