首頁 > Java > java教程 > 主體

Java靜態巢狀類

PHPz
發布: 2024-08-30 15:58:49
原創
745 人瀏覽過

靜態內部類別是巢狀類別。該類別作為任何充當外部類別的類別下的靜態成員存在。它不需要創建類別物件來使用成員函數和變數。它可以在外部類別的幫助下實例化。另外,它還有一個限制,就是不能像靜態變數一樣存取非靜態成員函數和成員變數。

文法:

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

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

JAVA靜態巢狀類別的語法如下。這裡我們需要一個外部類別作為內部類別的保護類別。內部類別將位於外部類別循環內。內部類別在class之前會有一個「static」關鍵字,這樣內部類別就可以被辨識為靜態內部類別或嵌套靜態類別。

class outerclass
{
static class Innerclass
{
//Member variables
//Member functions
}
}
登入後複製

Java 靜態巢狀類別如何運作?

JAVA靜態巢狀類別是在類別定義時在類別之前使用「static」關鍵字聲明的。 static 關鍵字也與方法和變數一起使用,以在整個程式中維護變數和方法的範圍,而不會開始覆寫它們。相同的功能可以在類別層級上使用,但例外的是它必須是內部類別。透過下一節中解釋的範例可以很好地理解嵌套靜態類別的功能。

儘管關於 JAVA 靜態巢狀類別有一些需要注意的要點:

  1. 靜態字不能與外部類別一起使用。這意味著只有當任何類別位於內部類別中時,才可以在類別之前使用 static 單字。
  2. 靜態巢狀類別可以存取外部類別的靜態成員函數和靜態變數以及它自己的靜態成員函數和靜態變數。對於外部類別的可存取性,如果私人成員被宣告為靜態,它甚至可以存取它們。
  3. 靜態類別只能存取靜態變數和方法。
  4. 不需要為靜態類別建立物件。可以直接呼叫使用 static 關鍵字指派的成員函數和變數。

實作 Java 靜態巢狀類別的範例

下面提供了一些範例及其解釋,供您查看。

範例#1

這些範例示範了程式處理過程中資料流中靜態關鍵字的使用和理解。

代碼:

public class Test1
{
static int vnumber=25;
static class Innerclass
{
void printmsg ()
{
System.out.println ("We are running this proram to undertsand the implementation of static keyword under JAVA nested class. The value of number passed here is "+vnumber);}
}
public static void main(String args[] )
{
Test1.Innerclass object=new Test1.Innerclass();
object.printmsg();
}
}
登入後複製

輸出:

Java靜態巢狀類

說明:靜態類別不是直接實例化的,因此在本例中,靜態類別是在外部類別的幫助下實例化的。外部類別「Test1」定義有一個名為「vnumber」的靜態變數和一個名為「Innerclass」的靜態類別。  此方法定義在名為「printmsg()」的內部類別下。該函數包含一個字串和一個在外部類別中定義的變數。

程式執行時,首先呼叫main函數。外部類別以及帶有有點運算符的內部類別用於實例化。呼叫名為“object”的實例。然後該物件用於呼叫函數 printmsg()。 printms() 函數帶來儲存在其中的字串和來自外部類別靜態變數宣告的值為 25 的變數。所以我們使用類別實例化的方法來示範靜態巢狀類別的用法。這裡要注意的一點是,使用了靜態內部類別和靜態變量,但 printmsg() 函數是非靜態的。這就是我們在上面的例子中實例化的原因。如果這個函數是靜態的,那麼我們就會以另一種方式使用它。

範例#2

代碼:

public class Test2
{
static int vnumber=30;
static class Innerclass
{
static void printmsg()
{
System.out.println("We are running this proram to undertsand the implementation of static keyword under JAVA nested class. The value of number passed here is : "+vnumber);}
}
public static void main(String args[])
{
Test2.Innerclass.printmsg();
}
}
登入後複製

輸出:

Java靜態巢狀類

說明:這裡,我們示範一個靜態巢狀函數的範例,其中變數、類別和方法都是靜態定義的。這樣做是為了示範直接呼叫方法而不是呼叫物件來呼叫方法。由於無論何時使用“static”關鍵字,都不需要建立物件。可以直接使用。因此,這裡建立了一個名為「test2」的外部類,其中包含一個名為「vnumber」的靜態變數和一個名為「innerclass」的內部類別。內部類別附加了一個static關鍵字來示範靜態巢狀類別的使用。內部類別有一個靜態成員函數及其字串和一個變數。

main函數在程式執行時被呼叫。外部類別、內部類別和方法透過點運算子直接呼叫。這裡我們沒有像上一個範例中創建的那樣創建對象,因為方法本身被聲明為靜態。

結論

當我們想要限制內部類別中外部函數的成員函數的使用時,靜態巢狀類別會很有用。這是可能的,因為內部靜態類別只能存取外部類別的靜態成員,而外部類別的其他非靜態成員如果內部類別想要使用它們,仍然需要建立一個物件。如果程式設計師正在尋找在他/她的程式碼中繼承一些安全性,則可以使用此方法。 static 關鍵字確保資料不易被操縱。這有助於提高應用程式的資料安全性和可靠性。

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

相關標籤:
來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!