2017-03-07 30 views
1

请问有人可以用例子解释java中的“非本地”变量是什么?java中的非局部变量

我的理解 非局部变量是对象变量。但是当被调用的对象变量会引用对象方法中使用的变量时?

+0

术语“非本地变量”通常不在Java中使用。 https://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables.html给出了什么是什么的概要。 – pvg

回答

0

本地变量将在方法的{}内声明。在大括号之外,变量将不再可访问和垃圾收集。 就我所知,对象变量在Java中并不是真正的东西,你可以有一个实例变量或一个类变量,那些在技术上就是你的“非本地”变量。

1

实例变量(非本地)在一个类中声明,但外部的方法,构造或者任何block.Instance变量属于一个类的实例,每个对象都有它的实例变量自己的副本

public class InstanceClassSample { 

    String name = "Java"; 

    public void testName(){ 

     //instanceClassSample and instanceClassSample2 will have it own copy of name 

     InstanceClassSample instanceClassSample = new InstanceClassSample(); 
     InstanceClassSample instanceClassSample2 = new InstanceClassSample(); 

     System.out.println(instanceClassSample.name); 
     System.out.println(instanceClassSample2.name);  

    } 



} 
2

在Java编程语言,there are 4 kinds of variables.

局部变量:这些是方法范围内声明的变量。一个方法通常会将其临时状态存储在局部变量中。

如果你问非本地变量,那么你会参考所有其他变量,但本地;像

  1. 实例变量(非静态字段)
  2. 类变量(静态字段)
  3. 参数