Java 中的內部類和靜態巢狀類

Zeeshan Afridi 2023年1月30日 2022年5月31日
  1. Java 中的類
  2. Java 中類的結構
  3. Java 中巢狀類的型別
Java 中的內部類和靜態巢狀類

Java 是一種純物件導向的程式語言。沒有類就不能建立程式。

Java 中的類

類是表示類物件可以訪問的一組方法和屬性的藍圖或原型。讓我們通過一個真實的例子來理解它。

Student 是一個類,它具有一些屬性和方法,例如 student namestudent roll nocal_gpa()cal_fee()。這些是學院或大學中每個學生的一些共同屬性。

我們很容易建立一個類,定義所有必需的屬性,並使用每個學生的類物件訪問它們。

程式碼示例:

package articlecodesinjava;
    class Student{
    String name;
    int rollNumber;

    void cal_gpa(){
        System.out.println("The method calculates CGPA.");
    }
    void cal_fee(){
        System.out.println("The method calculates the Semester fee.");
    }
}

public class ArticleCodesInJava {
    public static void main(String[] args) {
        // creating objects of Student class
        Student Jinku = new Student();
        Student Zeeshan = new Student();

        System.out.println("This is Jinku's details.");
        System.out.println(Jinku.name = "Jinku");
        System.out.println(Jinku.rollNumber = 1);
        Jinku.cal_fee();
        Jinku.cal_gpa();

        System.out.println("\n\nThis is Zeeshan's details.");
        System.out.println(Zeeshan.name = "Zeeshan Afridi");
        System.out.println(Zeeshan.rollNumber = 2);
        Jinku.cal_fee();
        Jinku.cal_gpa();
    }
}

輸出:

This is Jinku's details.
Jinku
1
The method calculates the Semester fee.
The method calculates CGPA.


This is Zeeshan's details.
Zeeshan Afridi
2
The method calculates the Semester fee.
The method calculates CGPA.

我們將學生的藍圖定義為一個班級,其中包含有關他們的基本資訊,例如姓名、卷號、CGPA 和費用。現在我們可以為每個學生呼叫這些屬性和方法,而不是為每個學生定義所有這些。

如你所見,我們建立了兩個物件,JinkuZeeshan,併為這些物件呼叫 Student 類的屬性和方法。

Java 中類的結構

Java 是一種強物件導向的程式語言;即使是一行程式碼也需要一個類和 main 方法。

類的語法:

AccessSpecifer classKeyword ClassName{
    //Class body
}

例子:

Public class Student{
    //Class body
}
  1. 根據程式碼的可訪問性,AccessSpecifer 可以是 publicprivateprotected

  2. class 關鍵字對於定義一個類是強制性的;否則,你無法建立課程。

  3. ClassName 也是建立類所必需的。最佳實踐和指南說名稱應該是有意義的,使程式碼更容易理解和可讀。

  4. 類主體是類的邊界或界限。你可以在類體內定義變數和方法。

    類主體以 { 開始並以 } 結束。

Java 中巢狀類的型別

巢狀類是指另一個類中的一個類。這種現象類似於巢狀條件和迴圈。

Java 允許你建立巢狀類。它使你能夠對在一個地方使用的類進行邏輯分組,並且還增加了封裝的使用。

巢狀類的語法:

class OuterClass{  	//OuterClass
    Class InnerClass{	//InnerClass }
}

在 Java 中,有兩種型別的巢狀類。這些是:

  1. 靜態巢狀類
  2. 內部類

Java 中的靜態巢狀類

靜態巢狀類被定義為其外部類的靜態成員,關鍵字 static。無需使用其他靜態成員例項化外部類即可訪問靜態巢狀類。

與其他靜態成員類似,靜態類無法訪問其外部類的方法和例項變數。

程式碼示例:

public class OuterClass {
    static class NestedStaticClass { // Outer class
        public void my_method() {        //Inner class
            System.out.println("This is a static nested class.");
        }
    }

    public static void main(String args[]) { // Main function
        //object of nested class
        NestedStaticClass ob = new NestedStaticClass();
        ob.my_method();
    }
}

輸出:

This is a static nested class.

Java 中的內部類

安全始終是幾乎所有軟體或組織的重中之重。Java 以其安全性而聞名,內部類是幫助我們實現這些安全標準的元件之一。

要訪問內部類,首先需要建立外部類的物件,然後使用該物件,就可以製作內部類的物件。

與常規或簡單類不同,內部類有權訪問 protectedprivate 指定的屬性和方法。此外,如果你不希望外部物件訪問內部類,你可以將內部類宣告為 private

程式碼示例:

public class OuterClass {
    class NestedStaticClass { // Outer class

        public void my_method() {    //Inner class
            System.out.println("This is a nested inner class.");
      }
    }

    public static void main(String args[]) { // Main function
        //object of nested class

        OuterClass OuterObj =  new OuterClass();
        OuterClass.NestedStaticClass obj = OuterObj.new NestedStaticClass();
        obj.my_method();
    }
}

輸出:

This is a nested inner class.
Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

相關文章 - Java Class