在面向對象的計算機程序設計中,匿名內部類是在方法內部聲明但未命名的類。匿名內部類有幾個限制,使其與普通類不同,包括對它可以訪問的變量范圍的限制。在某些非常特殊的情況下,使用匿名內部類可以使源代碼更具可讀性,但它...
在面向對象的計算機程序設計中,匿名內部類是在方法內部聲明但未命名的類。匿名內部類有幾個限制,使其與普通類不同,包括對它可以訪問的變量范圍的限制。在某些非常特殊的情況下,使用匿名內部類可以使源代碼更具可讀性,但它主要用于幫助強制執行封裝,因為生成單獨的類可能會使封裝復雜化匿名內部類是在方法內部聲明但未命名的類。封裝是面向對象編程(OOP)中的概念,即對象及其組件應以某種方式受到保護并綁定到對象上。匿名內部類和內部類通常有助于實現對復雜的對象。不必創建一個依賴于獨立的外部對象的類,將它們人為地綁定在一起并可能暴露某些組件,而匿名的內部類可以將兩者緊密地聯系在一起。在某些編程語言中,匿名內部類可以幫助克服單一繼承的限制。如果一個對象從一個類繼承,但隨后又需要訪問另一個類,可以動態生成內部類,然后將其傳遞給相應的處理程序。這種技術在回調和事件偵聽器中很常見。唯一的選擇是創建一個完整的第二個類,其中只有一個或兩個方法被重寫。匿名內部類有一些限制以防止中斷主要限制是匿名內部類不能訪問其所在方法的變量,除非這些變量聲明為final這是因為內部類可能會在其嵌套的類和方法的生命周期之外繼續運行。包裝類的變量將在其生命周期結束后被銷毀,因此內部類所持有的引用將立即無效。唯一的例外是final變量,因為它將在以后存在實例。匿名內部類的一個更具體的用途是代碼保護。許多OOP語言都提供了一種稱為反射的機制。反射允許程序分析另一個類并查看其成員變量和方法,而不是代碼本身。通過使用匿名內部類,內部類的內容被保護不被反射,并且大類的內部工作可以被有效地隱藏
-
發表于 2020-08-07 07:14
- 閱讀 ( 571 )
- 分類:電腦網絡