首頁>Club>
這和在外部直接定義有什麼區別?越詳細越好?
8
回覆列表
  • 1 # 網際網路IT資訊

    1. 從作用上來講:

    類的內部介面和外部介面,都是啟到介面的作用,介面就是來定義規範。

    2. 內部定義介面的好處:

    1)具體可以理解成一個類中進一步的邏輯細分, 比如JDK介面Map中的內部介面Entry;

    程式碼如下:

    2)可以增強程式碼的易讀性和可維護性;

    3)內部介面不管有沒有宣告static,都是靜態的.可以訪問外部類的私有內容。

    3. 從定義的出發點來講:

    我感覺內部介面更多的是針對類的內部使用,但是,在類的外部一般是說對外的公有介面,可以為更多的服務提供介面功能。

    現將已經發布部分文章羅列一部分:

    Java:執行緒併發問題、基於程式碼實戰的4種鎖機制及多執行緒協作程式設計

    Java網路程式設計:TCP和UDP通訊模型詳解及基於程式碼實戰的通訊程式設計

    Servlet:多個過濾器並存及程式碼實戰、web.xml的7種典型節點配置

    京東和騰訊精選12道Java筆試題並有答案

    精選11道Java技術面試題並有答案(包含部分阿里和華為的面試題)

  • 2 # 碼農傳奇

    內部介面也稱為巢狀介面,即在一個介面內部定義另一個介面。舉個例子,Entry介面定義在Map接口裡面,如下程式碼:public interface Map { interface Entry{ int getKey(); } void clear(); }使用內部介面的原因:一種對那些在同一個地方使用的介面進行邏輯上分組;封裝思想的體現;巢狀介面可以增強程式碼的易讀性和可維護性;在Java標準庫中使用內部介面的一個例子是java.util.Map和Java.util.Map.Entry。這裡java.util.Map同樣被當成名稱空間使用。Entry並不屬於全域性作用域範圍.

  • 3 # IT人劉俊明

    我始終認為把一個程式設計問題搞複雜了比較容易,把一個程式設計問題講的簡單明瞭是比較困難的事情。而Java中的內部介面就是一個這樣的問題,用的不多,但是某些情況下還有使用場景。

    在描述內部介面的應用之前,先說明一件事情,那就是開發中不使用內部介面是完全可以的。甚至很多公司是不允許使用內部介面的,這種做法雖然有些極端但是也是保證程式碼質量的一種頗為有效的方式。

    要理解Java類中定義的內部介面有什麼實際價值,要從三個角度來理解:首先要清楚內部類定義的初衷,其次要清楚介面的作用,最後再看內部介面能解決什麼問題。

    我們先來看一下內部類在java中的定義:

    要描述內部介面首先要描述內部類,因為這兩個概念是分不開的。關於內部類,Java的定義中清楚的指明瞭為了邏輯整合,什麼是邏輯整合呢?簡單的理解就是一組邏輯耦合度非常高的類,最常見的應用就是圖形介面和其對應的事件處理。還有一點,就是內部類的可複用性較小,使用範圍嚴重依賴於固定場景。

    那麼內部介面的定義是什麼呢?Java中關於內部介面的定義只有一句話:An inner class can act as an interface implemented by another inner class。這句話的定義清晰明瞭的指明瞭內部介面是服務於內部類的。看一個例子:

    可以說內部介面與內部類在定義之初就是為了提高程式的高度封裝而設計的,而內部介面則是為了給內部類提供服務的,除了可以定義內部介面還可以定義內部抽象類,此時還可以定義另外一個內部實體類實現此內部抽象類,看一個例子:

    這個例子只是在內部介面的例子基礎上稍加改動,這個例子的目的不僅僅是為了闡述內部抽象類的定義,更為了佐證內部介面的作用。因為我們通常把介面理解為全抽象,把抽象類理解為半抽象。

    當然,內部介面與內部類還是有一個根本上的區別:類是實現,介面是標準。如果把介面限制在一個固定的範圍內使用未免有點大材小用了,所以內部介面天然具備static屬性,是可以在外部直接使用的,看一個例子:

    這個例子的使用在效果上依然體現在高度封裝上,簡單的說就是透過一個專屬的介面完成抽象(Education)和實現類(MiddleSchool、HighSchool)的連線。

  • 中秋節和大豐收的關聯?
  • 黃光裕已出獄,他還會再現曾經的輝煌,登頂首富寶座嗎?