Groovy 中的方法是使用返回類型或使用 def 關(guān)鍵字定義的。方法可以接收任意數(shù)量的參數(shù)。定義參數(shù)時,不必顯式定義類型。可以添加修飾符,如 public,private 和 protected。默認(rèn)情況下,如果未提供可見性修飾符,則該方法為 public。
最簡單的方法是沒有參數(shù)的方法,如下所示:
def methodName() { //Method code }
下面是一個簡單方法的例子
class Example { static def DisplayName() { println("This is how methods work in groovy"); println("This is an example of a simple method"); } static void main(String[] args) { DisplayName(); } }
在上面的例子中,DisplayName 是一個簡單的方法,它由兩個 println 語句組成,用于向控制臺輸出一些文本。在我們的靜態(tài) main 方法中,我們只是調(diào)用 DisplayName 方法。上述方法的輸出將是 -
This is how methods work in groovy This is an example of a simple method
如果一個方法的行為由一個或多個參數(shù)的值確定,則它通常是有用的。我們可以使用方法參數(shù)將值傳遞給被調(diào)用的方法。請注意,參數(shù)名稱必須彼此不同。
使用參數(shù)的最簡單的方法類型,如下所示 ?
def methodName(parameter1, parameter2, parameter3) { // Method code goes here }
以下是使用參數(shù)的簡單方法的示例
class Example { static void sum(int a,int b) { int c = a+b; println(c); } static void main(String[] args) { sum(10,5); } }
在這個例子中,我們創(chuàng)建一個帶有 2 個參數(shù) a 和 b 的 sum 方法。兩個參數(shù)都是 int 類型。然后我們從我們的 main 方法中調(diào)用 sum 方法,并將值傳遞給變量 a 和 b。
然后我們從我們的 main 方法中調(diào)用 sum 方法,并將值傳遞給變量 a 和 b。
Groovy 中還有一個規(guī)定來指定方法中的參數(shù)的默認(rèn)值。 如果沒有值傳遞給參數(shù)的方法,則使用缺省值。 如果使用非默認(rèn)和默認(rèn)參數(shù),則必須注意,默認(rèn)參數(shù)應(yīng)在參數(shù)列表的末尾定義。
以下是使用參數(shù)的簡單方法的示例 -
def someMethod(parameter1, parameter2 = 0, parameter3 = 0) { // Method code goes here }
讓我們看看我們之前看到的添加兩個數(shù)字的相同示例,并創(chuàng)建一個具有一個默認(rèn)和另一個非默認(rèn)參數(shù)的方法 -
class Example { static void sum(int a,int b = 5) { int c = a+b; println(c); } static void main(String[] args) { sum(6); } }在這個例子中,我們創(chuàng)建一個具有兩個參數(shù) a 和 b 的 sum 方法。兩個參數(shù)都是 int 類型。此示例和上一個示例的區(qū)別在于,在這種情況下,我們將 b 的默認(rèn)值指定為5。
上述方法的輸出將為值 11。
class Example {
static void sum(int a,int b = 5) {
int c = a+b;
println(c);
}
static void main(String[] args) {
sum(6,6);
}
}
我們也可以通過傳遞 2 個值來調(diào)用 sum 方法,在上面的例子中,我們傳遞 2 個值 6 第二個值 6 實際上將替換分配給參數(shù) b 的默認(rèn)值。
上述方法的輸出將是值 12。
方法也可以將值返回到調(diào)用程序。 這在現(xiàn)在編程語言中是必需的,其中方法執(zhí)行某種計算,然后將所需值返回到調(diào)用方法。
下面是一個帶有返回值的簡單方法的例子。
class Example { static int sum(int a,int b = 5) { int c = a+b; return c; } static void main(String[] args) { println(sum(6)); } }
在我們上面的例子中,注意這次我們?yōu)槲覀兊姆椒?sum 指定一個類型為 int 的返回類型。 在方法中,我們使用 return 語句將 sum 值發(fā)送到調(diào)用主程序。 由于方法的值現(xiàn)在可用于 main 方法,因此我們使用 println 函數(shù)在控制臺中顯示該值。
在前面的例子中,我們將我們的方法定義為靜態(tài)方法,這意味著我們可以直接從類中訪問這些方法。方法的下一個示例是實例方法,其中通過創(chuàng)建類的對象來訪問方法。我們將在后面的章節(jié)中看到類,現(xiàn)在我們將演示如何使用方法。上述方法的輸出將為值 11。
方法通常在 Groovy 中的類中實現(xiàn),就像 Java 語言一樣。類只是一個藍(lán)圖或模板,用于創(chuàng)建定義其屬性和行為的不同對象。類對象顯示由其類定義的屬性和行為。因此,通過在類中創(chuàng)建方法來定義行為。
我們將在后面的章節(jié)中更詳細(xì)地看到類,下面是類中方法實現(xiàn)的例子。以下是如何實現(xiàn)方法的示例。
class Example { int x; public int getX() { return x; } public void setX(int pX) { x = pX; } static void main(String[] args) { Example ex = new Example(); ex.setX(100); println(ex.getX()); } }
在我們上面的例子中,這次我們沒有為類方法指定靜態(tài)屬性。在我們的 main 函數(shù)中,我們實際上創(chuàng)建了一個 Example 類的實例,然后調(diào)用 'ex' 對象的方法。
上述方法的輸出將是值 100。
Groovy 提供的設(shè)施就像java一樣具有本地和全局參數(shù)。在下面的示例中,lx 是一個局部參數(shù),它只具有 getX() 函數(shù)內(nèi)的作用域,x 是一個全局屬性,可以在整個 Example 類中訪問。如果我們嘗試訪問 getX() 函數(shù)之外的變量 lx,我們將得到一個錯誤。
class Example { static int x = 100; public static int getX() { int lx = 200; println(lx); return x; } static void main(String[] args) { println getX() } }
當(dāng)我們運行上面的程序,我們會得到以下結(jié)果。
200 100
就像在 Java 中一樣,groovy 可以使用 this 關(guān)鍵字訪問它的實例成員。以下示例顯示了當(dāng)我們使用語句 this.x 時,它引用其實例并相應(yīng)地設(shè)置x的值。
class Example { int x = 100; public int getX() { this.x = 200; return x; } static void main(String[] args) { Example ex = new Example(); println(ex.getX()); } }
當(dāng)我們運行上面的程序,我們將得到 200 的結(jié)果打印在控制臺上。
更多建議: