在写程序时,将变量写到函数外面与里面的异同是什么?
请详细分析一下
HashMap m = new HashMap();  // 1.outside
public void myFunction(){
 HashMap m = new HashMap(); // 2.inside
}

解决方案 »

  1.   

    写在类定义中的叫实例变量,写在方法中的叫局部变量。
    如果局部变量与实例变量同名,则局部变量覆盖实例变量。
    在上方法中想访问实例变量,要使用ClassName.this.m
      

  2.   

    Java里面没有全局变量,和C++不同,C++的变量可以和类完全无关,故可以叫全局,Java里面变量必须写在类中,也就是变量必须从属于类,何来全局?楼主写的实例变量也不过是包可见而已,出了包就无法使用了,这还能叫全局?而且Java建议封装,暴露在外的基本上只有getter和setter,实例变量基本上是private,不允许直接访问,也就是不推荐使用所谓“全局变量”,所以JDK库里面很少有可以直接访问的变量,全是方法。
      

  3.   

    {}此为函数的作用于,// 1.outside可以在此内的所有函数中都可以用到,而 2.inside
    只能在你当前的函数(MyFuction)中用到
      

  4.   


    个人觉得楼主还要看看概念啊  :)放在外面和放在里面 主要区别是访问域的不同    
    一个是类的字段, 所有方法都可以使用(排除static方法)
    一个是方法里面定义的临时变量,只能该方法使用
    用法上有很大的不同,可以说基本上是两个东西。不会依据性能好坏来决定用哪个  :)而且java对两种变量的处理方式完全不一样,个人觉得可以理解为两个东西, 不单单是里面外面的问题
      

  5.   

    呵呵,貌似Java没有全局变量这个说法的吧?外面的叫类属性