Java 實例/靜態(tài)方法

2018-01-18 14:48 更新

Java面向?qū)ο笤O(shè)計 - Java實例/靜態(tài)方法


類可以有兩種類型的方法:實例方法和類方法。實例方法和類方法也分別稱為非靜態(tài)方法和靜態(tài)方法。

實例方法用于實現(xiàn)類的實例的行為。實例方法只能在類的實例的上下文中調(diào)用。

類方法用于實現(xiàn)類本身的行為。類方法總是在類的上下文中執(zhí)行。

靜態(tài)修飾符用于定義類方法。方法聲明中缺少靜態(tài)修飾符,使得??該方法成為一個實例方法。

例子

以下是聲明一些靜態(tài)和非靜態(tài)方法的示例:

// A  static or  class method 
static void  aClassMethod()  {
    
}

// A  non-static or  instance method 
void  anInstanceMethod()  {

}

注意

當(dāng)調(diào)用類的靜態(tài)方法時,該類的實例可能不存在。因此,不允許從靜態(tài)方法內(nèi)部引用實例變量。

類定義一加載到內(nèi)存中,類變量就存在。類定義在創(chuàng)建類的第一個實例之前加載到內(nèi)存中。

類方法或靜態(tài)方法只能引用類的變量或類的靜態(tài)變量。實例方法或非靜態(tài)方法可以引用類變量以及類的實例變量。

以下代碼演示了在方法中可訪問的類字段的類型。

public class Main {
  static int m = 100; // A static variable
  int n = 200; // An instance variable

  // Declare a static method
  static void printM() {

    /*
     * We can refer to only static variable m in this method because you are
     * inside a static method
     */

    System.out.println("printM() - m   = " + m);

  }

  // Declare an instance method
  void printMN() {
    /* We can refer to both static and instance variables m and n in this method */
    System.out.println("printMN() - m   = " + m);
    System.out.println("printMN() - n  = " + n);
  }
}

調(diào)用方法

在方法的主體中執(zhí)行代碼稱為調(diào)用(或調(diào)用)方法。

實例方法和類方法以不同方式調(diào)用。

使用點(diǎn)表示法在類的實例上調(diào)用實例方法。

<instance reference>.<instance method name>(<actual parameters>)

在調(diào)用該類的實例方法之前,我們必須引用一個類的實例。

以下代碼顯示如何調(diào)用Main類的printMN()實例方法:

// Create an  instance of  Main class  and
// store its  reference in mt reference variable
Main mt = new Main();

// Invoke  the   printMN() instance  method  using the   mt reference variable 
mt.printMN();

要調(diào)用類方法,請使用帶有名稱的點(diǎn)表示法。

下面的代碼調(diào)用Main類的printM()類方法:

// Invoke  the   printM() class  method
Main.printM();

屬于一個類的屬性也屬于該類的所有實例。我們還可以使用該類的實例的引用來調(diào)用類方法。

Main mt = new Main();
mt.printM(); // Call the   class method  using an  instance mt

使用類名調(diào)用類方法比使用實例引用更直觀。

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號