首頁 > Java > java教程 > Java中的靜態方法

Java中的靜態方法

王林
發布: 2024-08-30 16:17:02
原創
828 人瀏覽過

Java中的靜態方法是屬於類別的一部分但不被視為類別的實例的方法;相反,Java 中的靜態方法可以輕鬆建立和實現,而無需任何實例呼叫。靜態方法可以存取類別的任何資料成員,並且可以對資料成員進行任何操作,或者可以將任何值作為輸入,儘管要存取的成員變數應該具有類別中變數的範圍,並且方法只能是靜態的。

開始您的免費軟體開發課程

網頁開發、程式語言、軟體測試及其他

文法:

靜態方法在Java中的表示如下:

public static void syntax_ex (String_name) {
Body of the program for execution.
}
登入後複製
  • public:該類別的存取修飾符是public。
  • static:方法的作用域被設定為static,這表示所有的成員變數和回傳類型都會在static的作用域內。
  • void:語法流程中的該關鍵字表示目前方法中沒有處理回傳類型。
  • syntax_ex: 類別的名稱,表示靜態方法是目前定義的類別的一部分,後面跟著字串名稱。
  • 執行的程式主體:它包含整個核心邏輯,如果需要靜態模式,則包含業務邏輯。
注意: 靜態方法的聲明必須有 static 作為修飾符,否則,靜態範圍將無法滿足,如果是的話,它將無法存取和操作類別的任何成員變數不是靜態的。傳回類型可以是 int、string、float 或任何自訂資料類型。 static 關鍵字一旦保留,就必須遵循一些記憶體分配標準。

靜態方法在 Java 中如何運作?

  • 靜態方法和實例方法是Java中的兩種方法,這兩種方法在程式設計師中造成了一些混亂,但這只是誤解。靜態方法和實例方法都有很大的差別。讓我們看看靜態方法在 Java 中是如何運作的。 java中的靜態方法是駐留在類別中的方法,即使沒有建立物件或沒有實例化也可以存取。類別名稱後跟方法名稱並傳遞參數足以存取該類別的任何實例。
  • 它可以表示為 ClassName.methodName(arguments)。此外,這些方法的組成只有一個目標,即該方法應該可共享給類別中存在的所有成員變數和對象,其範圍是用修飾符 static 定義的。這些方法沒有任何重寫的能力;相反,當程式設計師需要在類別的所有實例和物件或成員變數之間共享公共程式碼片段時,可以在編譯時使用編譯器的靜態綁定來重載它們,然後靜態方法就出現了作為一個救世主,因為它透過創建一個公共靜態範圍作為參考,為所有成員、物件和變數創建了一種共享配置。
  • 類別的所有靜態欄位都可以使用靜態欄位作為類別的靜態方法的一部分來存取。此外,靜態方法是相關的,也受記憶體分配功能的支援。它將靜態方法欄位和變數的一部分與一些永久生成的堆一起儲存在記憶體中,用於關聯值。記憶體分配不支援物件作為靜態方法堆創建,或者方法本身不支援實例化。但接下來想到的問題是靜態方法如何透過為類別的所有成員共享和建立作用域來運作。
  • 答案在於,作為參數傳遞給方法的局部變數(該方法又由類別呼叫)儲存在堆疊本身中。由於它們都是類別的一部分並且以這種方式屬於類,因此其他成員變數或方法可以輕鬆存取它們,而無需創建任何物件。

Java 中靜態方法的範例

下面給出了 Java 中靜態方法的範例:

範例#1

該程式演示了靜態類別及其特定成員,它試圖糾正所提到的主題中的分數;基本上,它表明在不創建任何物件或沒有任何實例化的情況下,它能夠創建和訪問靜態範圍內的類別的欄位或成員變數。

代碼:

public class E_Static_Method_Ex {
int roll_no;
String stdnt_name;
static String subject = "Maths";
public void rectify()
{
subject = "English";
}
E_Static_Method_Ex(int roll, String name) {
roll = roll_no;
name = stdnt_name;
}
void represent()
{
System.out.println(roll_no+""+stdnt_name+""+subject);
}
public static void main(String[] args) {
String mrks = E_Static_Method_Ex.subject;
System.out.println(mrks);
}
}
登入後複製

輸出:

Java中的靜態方法

Example #2

This program demonstrates a very significant point which needs to be kept in mind while executing any static method code, which is like the arguments passed and declared in the class should be defined within the scope of static or should have initialized with the static keyword so that accessing the field or the member variable becomes easy and there remains no compilation error as represented in the given program.

Code:

public class Restrcn_Static_Class {
int bi = 30;
String name = "Welcome Everyone!";
public static void main(String[] args) {
System.out.println(bi);
System.out.println(name);
}
}
登入後複製

Output:

Java中的靜態方法

Example #3

This program demonstrates the static variable that becomes accessible for the static class if the fields are declared and defined with static as a modifier; otherwise, the scope of static won’t get satisfied, and it will throw compilation error like the earlier example.

Code:

public class Static_Var_1 {
static int cnt=0;
Static_Var_1(){
cnt++;
System.out.println(cnt);
}
public static void main(String[] args) {
Static_Var_1 d1=new Static_Var_1();
Static_Var_1 dd2=new Static_Var_1();
Static_Var_1 dd3=new Static_Var_1();
Static_Var_1 dd4=new Static_Var_1();
Static_Var_1 dd6=new Static_Var_1();
}
}
登入後複製

Output:

Java中的靜態方法

Conclusion

Static Method in Java is a useful method in a class and has a clear difference when compared with the instance method as static method gives programmers flexibility by making them free from object creation, i.e. from the method of object instantiation. It helps in making the entire static class dynamic and versatile in nature, unlike the instantiation method.

以上是Java中的靜態方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板