內部類 內部介面那點事

2021-06-25 16:50:46 字數 773 閱讀 9918

先上總結:

1、乙個類的靜態內部類,因為是靜態的,所有不需要有包裹類的物件就可以例項化這個內部類(new out.inner()),所以在包裹類的靜態方法中可以直接new這個內部類,而且靜態內部類不可以訪問包裹類的成員變數。

2、乙個類的非靜態內部類,必須要先有包裹類的物件才能例項化這個內部類(new out().new inner()),且,在包裹類的靜態方法中不能例項化非靜態內部類(原因:非靜態內部類可以訪問包裹類的的成員變數,但包裹類的靜態方法不可以)。

3、靜態介面,這個我經常用,以前都是迷迷糊糊的就用了,不管寫不寫成static一樣用,原因是內部介面不管寫不寫static它都是static的。

測試**:

public class innerclass 

// 非靜態內部類, 在他包裹類的靜態方法中不能直接new

// 因為內部類可以訪問包裹類的成員變數,而在上面的靜態方法中不能訪問成員變數

// 所以如果可以new,就違背了自身

class cls1 }

// 靜態內部類, 可以在包裹類的靜態方法中直接new

// 因為他是靜態的, 可以在不例項化包裹類的前提下例項化

static class cls2 }

// 乙個類的內部介面本身就是靜態的

public inte***ce if

}class cls3

public class ifimpl implements innerclass.if

}

內部類 成員內部類 區域性內部類 匿名內部類

public class 外部類 private int num 0 外部類如果要訪問內部類的成員,則需要通過內部類的物件訪問 使用方式 1.外部類使用內部類,主函式再使用外部類 2.通過new的方式 外部類.內部類 物件名 new 外部類 new 內部類 定義在方法內部的類,就是區域性內部類,只有...

內部類(成員內部類 靜態內部類 方法內部類)

一 成員內部類 最常見的內部類就是成員內部類,也稱作普通內部類 2 inner類中定義的test 方法可以訪問outer類中的資料,不受訪問控制符的影響。3 定義了成員內部類後,必須使用外部類物件來建立內部類物件,而不能直接去 new 乙個內部類物件,即 內部類 物件名 外部類物件.new 內部類 ...

介面與內部類

本文目錄 2宣告實現介面的類 3介面是多繼承的 4介面是引用資料型別 介面定義介面 inte ce 是一組抽象方法 常量 和內嵌型別的集合。介面是一種資料型別,採用抽象形式描述約定。被類實現之後才有意義。乙個介面可被多個類實現。1.1宣告介面 使用關鍵字inte ce宣告介面,語法格式如下 publ...