W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
類可以有兩種類型的方法:實例方法和類方法。實例方法和類方法也分別稱為非靜態(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); } }
在方法的主體中執(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)用類方法比使用實例引用更直觀。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: