2017-03-07 77 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. 參數