Java 類變量

2018-02-20 01:32 更新

Java教程 - Java類變量

三種類型的變量

Java支持三種不同生存期的變量:

  • 成員變量
  • 方法局部變量
  • 靜態(tài)變量

類成員變量

在創(chuàng)建實(shí)例時(shí)創(chuàng)建類的成員變量,并且當(dāng)對(duì)象被銷毀時(shí)被銷毀。未顯式分配值的所有成員變量在聲明期間自動(dòng)分配一個(gè)初始值。成員變量的初始化值取決于成員變量的類型。

下表列出了成員變量的初始化值:

元素類型 初始值
byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d
char "\u0000"
boolean false
對(duì)象引用null

在以下示例中,變量x在聲明變量時(shí)設(shè)置為20。

public class Main{
   int x = 20;
}

如果您不設(shè)置它們,以下示例顯示默認(rèn)值。

class MyClass {
  int i;

  boolean b;

  float f;

  double d;

  String s;

  public MyClass() {
    System.out.println("i=" + i);
    System.out.println("b=" + b);
    System.out.println("f=" + f);
    System.out.println("d=" + d);
    System.out.println("s=" + s);
  }

}

public class Main {
  public static void main(String[] argv) {
    new MyClass();

  }
}

輸出:

方法局部變量的示例

方法的自動(dòng)變量在入口時(shí)創(chuàng)建方法,并且僅在該方法的執(zhí)行期間存在。只有在執(zhí)行該方法時(shí)才能訪問自動(dòng)變量。(此規(guī)則的一個(gè)例外是內(nèi)部類)。

自動(dòng)變量(方法局部變量)不由系統(tǒng)初始化。自動(dòng)變量必須在使用前顯式初始化。例如,這個(gè)方法不會(huì)編譯:

public class Main{
    public int wrong() { 
      int i;
      return i+5;
    } 
 
}

編譯上面的代碼時(shí)的輸出:



類變量(靜態(tài)變量)

這里只是一個(gè)類變量的一個(gè)副本,它存在,而不管該類的實(shí)例數(shù)。 靜態(tài)變量在類加載時(shí)初始化; 這里,當(dāng)Main類被加載時(shí),y將被設(shè)置為30。

public class Main{ 
  static int y = 30;
}

Java this關(guān)鍵字

this 引用當(dāng)前對(duì)象。

this 可以在任何方法中使用來引用當(dāng)前對(duì)象。

以下代碼顯示如何使用 this 關(guān)鍵字。

// A use of this. 
Rectangle(double w, double h) { 
    this.width = w; // this is used here
    this.height = h; 
}

隱藏的實(shí)例變量和this

使用 this 引用隱藏的實(shí)例變量。

成員變量和方法參數(shù)可以具有相同的名稱。在這種情況下,我們可以使用它來引用成員變量。

Rectangle(double width, double height) { 
    this.width = width; 
    this.height = height; 
}

以下示例顯示如何使用此引用實(shí)例變量。

class Person{
    private String name;


    public Person(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
public class Main{
    public static void main(String[] args) {
        Person person = new Person("Java");
        System.out.println(person.getName());
        person.setName("new name");
        System.out.println(person.getName());
    }
}

上面的代碼生成以下結(jié)果。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)