首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Java 內部類深度解析:定義與實戰應用完整指南

     編輯:程式設計疑難解答

Java 內部類核心概念與實戰演練

在 Java 程式設計中,內部類是一項強大且靈活的特性,它允許在一個類的內部定義另一個類。這種設計不僅增強了封裝性,還能讓內部類直接訪問外部類的私有成員,實現緊密協作。本文通過一個經典的立方體與長方形計算案例,深入剖析內部類的定義語法、實例化方式及實際應用場景。

案例需求分析

題目要求定義一個 Cube 類(立方體),包含高度屬性 height 和計算體積的方法 volume(double area),參數為底面積。在 Cube 內部定義 Rectangle 類(長方形),包含寬 width、長 length 及計算面積方法 area()。最終在測試類中組合調用,完成立方體體積計算。

代碼實現與關鍵點解析

class Cube {
    private double height;
    
    Cube() {}
    Cube(double height) { this.height = height; }
    
    public double volume(double area) {
        return area * height;
    }
    
    // 非靜態內部類(成員內部類)
    public class Rectangle {
        private double width;
        private double length;
        
        Rectangle(double width, double length) {
            this.width = width;
            this.length = length;
        }
        
        public double area() {
            return length * width;
        }
    }
}

public class Test {
    public static void main(String[] args) {
        // 正確實例化內部類:外部類實例.new 內部類構造器
        Cube.Rectangle rect = new Cube().new Rectangle(10.0, 10.0);
        double baseArea = rect.area();
        
        Cube cube = new Cube(20.0);
        double volume = cube.volume(baseArea);
        System.out.println("立方體的體積 = " + volume);
    }
}

核心知識點總結

  • 內部類實例化語法:OuterClass.InnerClass obj = new OuterClass().new InnerClass(); 必須先有外部類實例,才能創建內部類對象。
  • 訪問權限:內部類可直接訪問外部類所有成員(含 private),外部類訪問內部類需通過實例。
  • 應用場景:邏輯緊密相關、需共享狀態的類結構,如迭代器、事件監聽器、Builder 模式等。

進階補充:靜態內部類與匿名內部類

若內部類聲明為 static,則不依賴外部類實例,實例化方式變為 new OuterClass.InnerClass()。匿名內部類常用於接口回調或抽象類快速實現,如 new Runnable() { public void run() {...} }。掌握這些變體能讓代碼更靈活優雅。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved