內部類和泛型

2022-09-09 10:09:09 字數 1672 閱讀 2199

內部類就是在類中的類。在原始碼中經常看到,但是原始碼中常見的都是靜態內部類,最常見的型別就是資料型別a.資料型別b,也就是a.b

這種型別。

1、threadlocal.threadlocalmap;

2、map中的各種靜態結構等等;

3、獲取得到單例物件

在以前學習j**a的時候,我們通常喜歡在乙個類外面定義乙個類,但是乙個類中只能允許有乙個public關鍵字修飾的類,那麼另外的類通過不使用public關鍵字來進行修飾。

public class hungrysingle 

}// hungrysingle類外來進行定義

class hungry

public static hungry getinstance()

}

成員內部類,既然名字是這樣,那麼就和乙個類的成員沒有什麼太大的差距了,可以認為是地位是等同的。

例子1:

public class outter 

public class inner

public integer getid1()

public void setid1(integer id1)

public string getname1()

public void setname1(string name1)

@override

public string tostring() ';}}

}

public class test 

}

例子2:

public class staticsingletest 

// 定義乙個方法來獲取得到例項。這種方式使用起來有乙個好處。什麼時候用到了,什麼時候就在進行載入。節約記憶體。

public static staticsingletest getinstance()

// 內部類可以訪問到外部類中的一切成員。

// 靜態內部類

static class singgleinstance

}

泛型的使用可以非常方便的簡化我們在型別轉換上的麻煩,在現在的開發中非常方便。減少使用強制型別轉換。

常見的應用場景:集合類中以及我們在自定義響應給前端的響應物件response類中,使用起來直接用。

用例子演示下:

public class testfan 

public void setobject(object object)

public static void main(string args)

}

這種方式頻繁的使用真的是很麻煩,但是如果來使用泛型呢?可以看下對應**

public class testt

public void sett(t t)

public static void main(string args)

}

這種方式使用起來比較優雅,想往類中放置什麼物件就放置什麼資料型別即可。

在物件中定義泛型,通常使用t;

在集合中定義泛型,通常使用e;

泛型還有對應的高階用法:

class 類名這裡的資料型別可以是介面和類

泛型,內部類

對於泛型,不要求怎麼使用,要求看原始碼時能看懂就行。泛型的意義 1,自動進行型別的檢查 2,自動進行型別的轉換 泛型的一些重點 1,泛型時怎麼編譯的?擦除機制 object 2,泛型的型別 不參與型別的組成 3,泛型的引數不能是簡單型別 看乙個簡單的泛型示例 class myarraylist pu...

內部類和匿名內部類

內部類 取個類名inner 有三種 成員內部類 相當於類中的成員 1.可以訪問外部類的成員變數.2.類中的成員函式訪問內部類 建立內部類的物件進行訪問.如 inner in new inner 3.外部其他類 不是內部類的直接外部類 訪問內部類的成員建立物件.格式 外部類名 內部類名 變數名 new...

內部類和匿名內部類

把類定義在其他類的內部,這個類就被稱為內部類。舉例 在類 a 中定義了乙個類 b,類 b 就是內部類。內部類的訪問特點 內部類可以直接訪問外部類的成員,包括私有。外部類要訪問內部類的成員,必須建立物件。按照內部類在類中定義的位置不同,可以分為如下兩種格式 成員位置 成員內部類 一般內部類就是不讓外界...