C 學習筆記 內部類與名字空間

2021-08-08 15:08:35 字數 888 閱讀 4487

內部類的定義: 把乙個類的定義寫在另乙個類的內部,則稱裡面這個類為內部類。

例如,inner就是

class aaa

}在使用該內部類時,類名要使用全程 aaa::inner。除此之外,內部類和普通類沒有任何區別。

內部類和外部類互相沒有特權,

他們不是朋友關係,他們不是父子關係,他們沒有任何關係。

所以,外部類無法自由訪問內部類,內部類也無法自由訪問外部類。

如果內部類被 protected/private限制,則該類在外部不可見。(類名被完全隱藏)

既然內部類和普通類並無區別,那為什麼要把它寫在另乙個類的內部呢?

原因:(1)避免名字衝突

(2)如果乙個類只是在模組內部使用,則可以實現類名隱藏

當專案越來越大,避免類名的衝突成為乙個現實存在的問題。。。將一些只在模組內部使用的類,寫成內部類

注:內部類還可以再定義內部類,沒有層數限制,但一般就寫兩層

名字空間

解決名字衝突的終極手段:namespae,名字空間

語法為:

namespace ***

;}   <-這裡不需要分號

使用namespace中的名字加上乙個名字字首

***::yyy obj;

***::test();

解除字首:using關鍵字

如果覺得每次加上字首麻煩,可以用using關鍵字來解除字首。(確定不會產生名字衝突)

using  namespace ***;

//使用***裡面的所有名字

using

***::yyy;

//只使用***裡面的乙個名字yyy

注:在某些第三方庫中是有namespace的,因此我們在使用這些庫的時候,要確定要不要用using解除名字字首。

內部類學習筆記

案例演示 成員內部類使用 public class test class outer 案例演示 靜態內部類使用 public class test class outer 案例演示 區域性內部類使用 public class test class outer 建立區域性內部類物件 inner inn...

JAVA學習筆記10 內部類 匿名內部類

內部類 內部類可以直接訪問外部類成員 包括私有成員 外部類要訪問內部類中的成員必須要建立內部類的物件 class outer public void method 內部類一般用於類的設計 分析事物時 發現該事物描述中還有事物 而且這個事物還在訪問被描述事物的內容 這時就可以將還有的事物用內部類來描述...

c 名字空間指令與名字空間宣告

在使用任何名字空間之前,編譯器必須能夠找到他,即確定他的宣告所在的作用域。使用某個名字空間中的名字最簡單的方式就是使用限定名字,即把名字空間的名字 如ns1 作為字首,然後加上作用域操作符 然而又是可能不願使用名字空間以追求 簡潔。可以通過下面實現 1.使用using指令 如 using names...