首頁  >  文章  >  Java  >  Java中的靜態關鍵字

Java中的靜態關鍵字

王林
王林原創
2024-08-30 15:21:37613瀏覽

Java 是一種流行的程式語言,用於生成軟體程式和應用程序,開發於 20 世紀 90 年代中期。 Java 與所有現代作業系統相容。它的流行是由於它提供了某些規定來確保應用程式範圍的安全性和可重複使用性,例如靜態成員。在Java中,static關鍵字主要用於確保高效的系統記憶體管理和公共屬性的可重複使用性。我們可以將 static 關鍵字與變數、方法、巢狀類別以及程式碼區塊一起使用。 Static 在 Java 中用作非存取修飾符。 Static 關鍵字指示特定成員屬於類型本身,而不是該特定類型的各個實例。這意味著只能建立該靜態成員的單一實例並在該類別的所有實例之間共用。

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

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

建立靜態方法

要宣告靜態成員,無論是區塊、變數、方法或巢狀類,我們都需要在成員前面加上關鍵字 static。當我們將成員聲明為靜態時,我們可以在創建其任何類別物件之前存取它,因為它獨立於其類別物件。

在下面的範例中,我們將建立一個靜態方法,並看看如何在不引用其類別的情況下呼叫它:

代碼:

class Main // declaring a class name called staticTest
{
// Declaring a static method below
public static void myStaticmethod()
{
System.out.println("Hello, I was called from static method.");
}
public static void main(String[] args )
{
// Calling the static method without any object reference
myStaticmethod();
}
}

輸出:

Java中的靜態關鍵字

建立具有多個靜態區塊的單一類別

有時我們需要執行某些計算來初始化靜態變數。在這種情況下,我們可以聲明一個靜態區塊,該靜態區塊僅在類別首次執行時載入一次。

範例:

代碼:

class Main
{
// Declaring a static variable below
static int a = 10;
static int b;
// Declaring a static block below
static
{
System.out.println( " In static block now. " );
b = a*2;
}
public static void main( String[] args )
{
System.out.println(" Value of b : " + b);
}
}

輸出:

Java中的靜態關鍵字

現在轉向靜態變量,它們主要是全域變量,因為當變數被宣告為靜態時,只會創建該變數的單一副本並在類別中的所有物件之間共用。我們需要考慮只能在類別層級建立靜態變數。如果一個程式同時有靜態變數和靜態區塊,那麼靜態變數和靜態區塊將按照它們在程式中寫入的順序執行。

方法是Java;當前面有 static 關鍵字宣告時,稱為靜態方法。 Java中最常用的靜態方法是main方法。 Java 中使用 static 關鍵字宣告的方法也伴隨著一些限制。

下面列出了其中一些:

  • 靜態方法只允許呼叫其他靜態方法。
  • 靜態方法只能直接存取靜態資料。
  • 靜態方法在任何情況下都不能引用 this 或 super。

為什麼 Java 中的 Main 方法是靜態的?

  • Java 中的 main 方法是靜態的,因為我們不需要物件能夠呼叫 main 方法。
  • 如果它是一個非靜態方法,那麼我們首先需要 JVM(Java 虛擬機器)來呼叫類別對象,這不會是一個節省記憶體的過程,因為它需要額外的記憶體。

靜態成員的用例

您可能在想什麼情況和場景我們應該使用靜態成員和變數?

我們可以對所有物件共有的任何屬性使用靜態變數。例如,如果我們有一個名為 Student 的類,那麼所有學生物件將共享相同的大學名稱屬性,在這種情況下可以將其聲明為靜態變數。當靜態變數的值獨立於其類別物件時,我們也可以使用靜態變數。

範例:

代碼:

class Student
{
int roll_no; // declaring an instance variable
String name;
static String college_name ="KC College"; // declaring a static variable for common property college name
//declaring the class constructor below
Student(int r, String n)
{
roll_no = r;
name = n;
}
// declaring a method to display the values
void display ()
{
System.out.println(roll_no+" "+name+" "+college_name);
}
}
//Declaring a test class to display the values of objects
public class Main{
public static void main(String args[]){
Student st1 = new Student(111,"Karan");
Student st2 = new Student(222,"Arjun");
//below we have changed the college name which was a common property of all objects with a single line of code
Student.college_name ="Jain Hind College";
st1.display();
st2.display();
}
}

輸出:

Java中的靜態關鍵字

Java 中的靜態巢狀類別

  • 在Java中,我們不能將頂層類別聲明為靜態,但如果需要,我們可以將其嵌套類別聲明為靜態。這樣的類別稱為巢狀靜態類別。
  • Java中的靜態方法是在運行時識別的,由於重寫是運行時多態性的一部分,因此靜態方法不能被重寫。我們不能將抽象方法宣告為靜態。

結論 – Java 中的靜態關鍵字

透過上面的範例和解釋,我們可以得出結論,Java 提供了一些特性和屬性,例如靜態和抽象,這使得它的使用安全、安全和健全。對於開發安全性是首要關注的系統來說,這些導致 Java 仍然是一個非常流行的選擇。

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn