Java 中的內部類和靜態巢狀類
Java 是一種純物件導向的程式語言。沒有類就不能建立程式。
Java 中的類
類是表示類物件可以訪問的一組方法和屬性的藍圖或原型。讓我們通過一個真實的例子來理解它。
Student
是一個類,它具有一些屬性和方法,例如 student name
、student roll no
、cal_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 和費用。現在我們可以為每個學生呼叫這些屬性和方法,而不是為每個學生定義所有這些。
如你所見,我們建立了兩個物件,Jinku
和 Zeeshan
,併為這些物件呼叫 Student
類的屬性和方法。
Java 中類的結構
Java 是一種強物件導向的程式語言;即使是一行程式碼也需要一個類和 main
方法。
類的語法:
AccessSpecifer classKeyword ClassName{
//Class body
}
例子:
Public class Student{
//Class body
}
-
根據程式碼的可訪問性,
AccessSpecifer
可以是public
、private
或protected
。 -
class
關鍵字對於定義一個類是強制性的;否則,你無法建立課程。 -
ClassName
也是建立類所必需的。最佳實踐和指南說名稱應該是有意義的,使程式碼更容易理解和可讀。 -
類主體
是類的邊界或界限。你可以在類體內定義變數和方法。類主體以
{
開始並以}
結束。
Java 中巢狀類的型別
巢狀類是指另一個類中的一個類。這種現象類似於巢狀條件和迴圈。
Java 允許你建立巢狀類。它使你能夠對在一個地方使用的類進行邏輯分組,並且還增加了封裝的使用。
巢狀類的語法:
class OuterClass{ //OuterClass
Class InnerClass{ //InnerClass }
}
在 Java 中,有兩種型別的巢狀類。這些是:
- 靜態巢狀類
- 內部類
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 以其安全性而聞名,內部類是幫助我們實現這些安全標準的元件之一。
要訪問內部類,首先需要建立外部類的物件,然後使用該物件,就可以製作內部類的物件。
與常規或簡單類不同,內部類有權訪問 protected
和 private
指定的屬性和方法。此外,如果你不希望外部物件訪問內部類,你可以將內部類宣告為 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 is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedIn