2012-04-29 53 views
2

我目前正在嘗試學習如何製作3D遊戲,所以我看了一些YouTube教程。在一個Tutorial我發現這個方法:Java奇怪的方法

int floorTexture = glGenTextures(); 
{ 
    // ... 
} 

Source (Line 215)

我從來沒有見過這種類型的方法(我認爲這是一個方法)之前,所以我現在有兩個問題:

  1. 我可以爲這個方法添加參數嗎?此代碼不能正常工作

    int texture (String texturename) = glGenTextures(); 
    
  2. 什麼是=glGenTextures()嗎?

(我想一個方法來加載不同的紋理。)

+0

你確定這是Java嗎?因爲我從來沒有遇到類似java – AurA 2012-04-29 08:41:52

回答

5

這不是一個方法聲明 - 它是一個方法調用後跟一個塊。

該塊本身是不必要的,基本上只是混淆。哎呀,一個事實,即main方法幾乎是500線長是一個很好的跡象,這代碼,你應該服用提示 - 至少在結構方面...

+1

+1這樣的東西......這是奇怪的代碼...容易與不同的方法混淆,如:new abstractClass(){...} – mglauche 2012-04-29 08:43:03

+0

@mglauche或與存根和接縫 – 2012-04-29 08:44:45

+0

+ 1的建議不要從這樣的代碼提示。其中大部分表明,這不是最好的風格。 – LiKao 2012-04-29 08:49:16

2

這不是一個方法定義。這是一種方法致電。調用後的{引入了一個新的塊/作用域。如果你立即看到這個調用,你會看到另一個塊(因爲它本身)看起來不像方法定義。

2

這是一個方法調用接着是一段代碼。代碼塊與前面的方法調用無關。它的唯一用處是定義一個新的塊範圍(允許定義僅在此塊中可見的局部變量)。

1

看看壓痕。它只是一個int變量floorTexture的定義,它被初始化爲返回值glGenTextures()。接下來的代碼只是main中的一個塊,用於確保在塊保留後變量超出範圍。所以沒有方法,也沒有辦法添加參數。