Java靜態方法間接賦值賦值非靜態變數

2021-07-04 15:59:50 字數 590 閱讀 2083

在程式設計的過程中有時候我們需要通過乙個靜態的方法給靜態的變數賦值,但是如果是直接賦值,編譯器會直接報錯:如下:

想必原因大家很清楚了,cannot make a static reference to the non-static field mouthcolor ;但是可以通過以下的方法間接賦值:

public class duck 

public static duck build(string color)

public string getmouthcolor()

public void setmouthcolor(string mouthcolor)

}

呼叫方法:

public class test 

}

輸出:鴨子的嘴是:黃色

關鍵就是:通過靜態的方法(new 乙個物件返回)呼叫非靜態的構造方法,再通過非靜態的構造方法賦值非靜態變數。這樣就完成了靜態方法間接賦值賦值非靜態變數

01 08 變數的間接賦值

01 08 變數的間接賦值 不要使用不屬於你的記憶體,有被系統 的危險 include include 1void test1 void main int 的p 1偏移4 double的p 1偏移8之類的 2 1 psn.d位址偏移 printf p n psn.d printf p n char ...

阻塞賦值和非阻塞賦值

阻塞賦值 阻塞賦值操作符用等號 即 表示。為什麼稱這種賦值為阻塞賦值呢?這是因為在賦值時先計算等號右手方向 rhs 部分的值,這時賦值語句不允許任何別的verilog 語句的干擾,直到現行的賦值完成時刻,即把rhs 賦值給 lhs 的時刻,它才允許別的賦值語句的執行。一般可綜合的阻塞賦值操作在rhs...

阻塞賦值和非阻塞賦值

2017 12 01 在verilog語言中,賦值語句經常使用,阻塞賦值和非阻塞賦值經常帶給我們很多困擾。在此討論兩種賦值方式的差異性。首先根據表面含義深刻理解阻塞和非阻塞 阻塞 在程序語句塊中 initial或者always或者其他 當前賦值語句的執行阻塞了後面語句的執行。即後面語句的賦值需要等到...