JAVA全局变量和局部变量简单介绍

在JAVA全局变量和局部变量与在php,asp.net中的用法与性质都差不多,下面我来给大家详细介绍JAVA全局变量和局部变量介绍。

全局变量:也叫成员变量,是指在类中定义的变量,它在整个类中都有效。全局变量又可分为:类变量和实例变量。

全局变量前面要加上static和 fina属性其中,static使该变量任何类都可用(方法 ClassName.全局变量名)
,而 fina则使得变量不可更改,基本上算是常量了,这也在一定程度上防止对变量的非法修改

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

例1
 

 代码如下 复制代码

 Tst.java,no main() method
   package com.blogchina.qb2049;
   public class Tst
   {
      static { System.out.println("111111"); } 
   }

运行结果为: 111111
           Exception in thread "main" java.lang.NoSuchMethodError: main


 


static final变量,必须在声明的时候初始化或者在static静态块里面初始话。

所以你要用程序输入作为他的变量,就必须修改变量类型
你可以写成

 代码如下 复制代码

public class xx
{
    public final String PackageName ;
    public xx(String name)
    {
        PackageName  = name;
    }
}


 

在外面定义一个xx的静态实例 public static xx xxInstance = new xx("输入的值");
调用的时候,就写xxInstance.PackageName

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

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

先看下面两段程序:

 代码如下 复制代码
程序一:

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:Programjavatest>javac Variable.java
Variable.java:9: 可能尚未初始化变量 i
                if(j==i)
                      ^
1 错误

之所以会出现这样的错误是因为:成员变量有默认值,(被final修饰且没有static的必须显式赋值),局部变量不会自动赋值
注意:如果某个方法中的局部变量的名字与全局变量的名字相同, 则该全局变量在这个方法中暂时失效

 

类什么时候被加载/类加载时机:

第一:生成该类对象的时候,会加载该类及该类的所有父类;

第二:访问该类的静态成员的时候;

第三:class.forName("类名");

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值