關於靜態方法和非靜態方法之間的呼叫

2022-08-17 14:03:13 字數 675 閱讀 6996

1、如果在非靜態方法裡呼叫非靜態方法,則可以用this呼叫。

如:this.hao(string args) ,也可以省略this,直接呼叫hao(string args)。

2、如果在靜態方法裡呼叫靜態方法,則可以直接使用「類名.方法名」呼叫。

如:若被呼叫的靜態方法m1在類hao1裡,則呼叫方法是

1

//靜態方法裡呼叫靜態方法,使用「類名.方法名」呼叫。23

public

static

void

m()4

3、如果在靜態方法裡呼叫非靜態方法,則必須先new乙個物件,通過物件呼叫。

如:若被呼叫的非靜態方法m2在類hao2裡,則呼叫方法是

1

//靜態方法裡呼叫非靜態方法,先new乙個物件,通過物件呼叫。23

public

static

void

m()4

注意:1.靜態變數在記憶體中只有乙個拷貝,在類的所有例項中共享

2.靜態方法不能直接訪問非靜態方法和非靜態變數

3.非靜態方法可以訪問類的所有成員變數(包括靜態成員變數和非靜態成員變數)

4.靜態方法和靜態變數都可以通過類名直接被訪問

5.靜態方法中不能使用this,super關鍵字

靜態方法和非靜態方法

首先,兩者本質上的區別是 靜態方法是在類中使用staitc修飾的方法,在類定義的時候已經被裝載和分配。而非靜態方法是不加static關鍵字的方法,在類定義時沒有占用記憶體,只有在類被例項化成物件時,物件呼叫該方法才被分配記憶體。其次,靜態方法中只能呼叫靜態成員或者方法,不能呼叫非靜態方法或者非靜態成...

靜態方法和非靜態方法

靜態方法和非靜態方法 其次,靜態方法中只能呼叫靜態成員或者方法,不能呼叫非靜態方法或者非靜態成員,而非靜態方法既可以呼叫靜態成員或者方法又可以呼叫其他的非靜態成員或者方法。例子1 靜態方法的main方法訪問類中的非靜態成員方法。class test public static void main s...

靜態和非靜態方法 呼叫靜態和非靜態方法 原創

在學習php物件導向的時候,遇到了一些問題 class test1 在test1類中,定義了乙個test方法。一般呢,想要呼叫test方法的話,是通過例項化乙個物件來呼叫test方法的。比如 aaa.php php 正常的方式訪問普通方法test class test1 new new test1 ...