更新時間:2022-04-08 10:38:42 來源:動力節(jié)點 瀏覽1719次
在Java中,方法是執(zhí)行特定任務(wù)或操作的語句的集合。它被廣泛使用,因為它提供了代碼的可重用性,意味著一次編寫并多次使用。它還提供了簡單的修改。每個方法都有自己的名稱,通過它被調(diào)用。當編譯器讀取方法名稱時,調(diào)用該方法并執(zhí)行指定的任務(wù)。在本節(jié)中,動力節(jié)點小編將告訴大家如何在 Java中調(diào)用預(yù)定義、用戶定義、靜態(tài)和Java抽象方法。
在Java中,靜態(tài)方法是在不創(chuàng)建定義該方法的類的對象的情況下調(diào)用或調(diào)用的方法。所有在方法名前帶有 static 關(guān)鍵字的方法都稱為靜態(tài)方法。我們還可以通過在方法名稱前使用static關(guān)鍵字來創(chuàng)建靜態(tài)方法。我們可以使用ClassName.methodName調(diào)用靜態(tài)方法。
靜態(tài)方法的最佳示例是main()方法。它在不創(chuàng)建對象的情況下被調(diào)用。
靜態(tài)方法調(diào)用示例
導(dǎo)入 java.util.*;
公共類 StaticMethodCallExample
{
公共靜態(tài)無效 主(字符串參數(shù) [])
{
詮釋 一個;
//調(diào)用數(shù)學(xué)類的靜態(tài)方法
a=數(shù)學(xué).min( 23 , 98 );
System.out.println( "最小數(shù)為:" + a);
}
}
輸出:
最少人數(shù)為 23
在 Java 中,預(yù)定義方法是已在類中定義的方法。當我們需要任何預(yù)定義的方法時,我們只需按其名稱調(diào)用該方法。
在下面的示例中,我們使用了Object類的名為hashCode()的方法。為了調(diào)用預(yù)定義的方法hashCode(),我們創(chuàng)建了 Object 類的對象obj,因為它是 Object 類的方法。通過使用該對象,我們調(diào)用了hashCode()方法,該方法返回該對象的哈希碼值。
PredefinedMethodCallExample.java
公共類 PredefinedMethodCallExample
{
公共靜態(tài)無效 主要(字符串 [] 參數(shù))
{
詮釋 一個;
對象 obj=新 對象();
a=obj.hashCode();
System.out.println( "對象的哈希碼為:" +a);
}
}
輸出:
對象的哈希碼為:2036368507
要調(diào)用用戶定義的方法,首先,我們創(chuàng)建一個方法,然后調(diào)用它。必須在類中創(chuàng)建一個方法,方法名后跟括號()。方法定義由方法頭和方法體組成。
我們可以通過以下方式調(diào)用方法:
方法名(); //非靜態(tài)方法調(diào)用
如果方法是靜態(tài)方法,我們使用如下:
obj.method_name(); //靜態(tài)方法調(diào)用
其中 obj 是類的對象。
在以下示例中,我們創(chuàng)建了兩個名為showMessage()和displayMessage()的用戶定義方法。showMessage ()方法是靜態(tài)方法,而displayMessage()方法是非靜態(tài)方法。
請注意,我們直接調(diào)用了showMessage()方法,沒有使用對象。而displayMessage()方法是使用類的對象調(diào)用的。
MethodCallExample.java
公共類 MethodCallExample
{
//用戶定義的靜態(tài)方法
靜態(tài)無效 顯示消息()
{
System.out.println( "調(diào)用的靜態(tài)方法。" );
}
//用戶定義的非靜態(tài)方法
無效 的顯示消息()
{
System.out.println( "調(diào)用了非靜態(tài)方法。" );
}
公共靜態(tài)無效 主要(字符串 [] 參數(shù))
{
//調(diào)用靜態(tài)方法而不使用對象
顯示消息(); //調(diào)用方法
//創(chuàng)建一個類的對象
MethodCallExample me= new MethodCallExample();
//調(diào)用非靜態(tài)方法
me.displayMessage(); //調(diào)用方法
}
}
輸出:
調(diào)用的靜態(tài)方法。
調(diào)用了非靜態(tài)方法。
一個類可以包含兩個或多個同名的方法。現(xiàn)在出現(xiàn)了一個問題,我們?nèi)绾握{(diào)用具有相同名稱的兩個方法。
當一個類有兩個或多個同名方法時,它由返回類型或參數(shù)類型或參數(shù)數(shù)量來區(qū)分。這個概念稱為方法重載。例如:
整數(shù) 總和(整數(shù) x, 整數(shù) y);
雙 總和(雙 x, 雙 y);
上述兩個方法同名sum()但兩者不同。第一個 sum() 方法返回一個 int 值并解析兩個整數(shù) x 和 y 作為參數(shù)。而第二個 sum() 方法返回一個雙精度值并解析兩個雙精度值 a 和 y 作為參數(shù)。
讓我們創(chuàng)建一個重載sub()方法的程序。
MethodOverloadingExample.java
公共類 MethodOverloadingExample
{
靜態(tài)int sub( int x, int y)
{
返回 x - y;
}
靜態(tài)雙子 (雙 x, 雙 y)
{
返回 x - y;
}
公共靜態(tài)無效 主要(字符串 [] 參數(shù))
{
int a = sub( 45 , 23 );
雙 b = sub( 23.67 , 10.5 );
System.out.println( "整數(shù)值的減法:" +a);
System.out.println( "雙精度減法:" +b);
}
}
輸出:
整數(shù)值的減法:22
雙值減法:13.170000000000002
抽象方法是使用抽象關(guān)鍵字聲明的方法。抽象方法只有一個方法聲明。另一個類中定義的抽象方法的主體。抽象方法必須在抽象類中聲明。我們可以將抽象方法的可見性設(shè)置為私有或公共。我們不能將抽象方法聲明為 final,因為它違反了抽象方法的優(yōu)點。
抽象方法的實際實現(xiàn)必須在子類中。我們可以定義一個抽象方法如下:
抽象公共無效 findArea();
讓我們創(chuàng)建一個調(diào)用抽象方法的示例。
在下面的示例中,我們創(chuàng)建了一個名為AbstractMethodExample的類并將其聲明為抽象。在這個類中,我們聲明了一個名為show()的抽象方法。之后,我們創(chuàng)建了另一個名為AbstractMethodCalling的類,它擴展了AbstractMethodExample類。在這個類中,我們實現(xiàn)了抽象方法。
為了調(diào)用抽象方法 show(),我們創(chuàng)建了父類的一個實例并調(diào)用了抽象方法。
AbstractMethodCalling.java
//抽象類
抽象類 AbstractMethodExample
{
//抽象方法聲明
抽象無效 顯示();
}
公共類 AbstractMethodCalling 擴展 AbstractMethodExample
{
//抽象方法實現(xiàn)
無效 顯示()
{
System.out.println( "調(diào)用的抽象方法。" );
}
公共靜態(tài)無效 主(字符串參數(shù) [])
{
AbstractMethodExample obj = new AbstractMethodCalling();
//調(diào)用抽象方法
obj.show();
}
}
輸出:
調(diào)用的抽象方法。
相關(guān)閱讀