關於Java和C#的內部類的小記
今天在看Java方面的書籍的時候看到這樣一段話,說在Java中的內部類不能包含靜態方法和欄位,之後巢狀類中可以包含(內部類和巢狀類說的都是類中的子類,只不過巢狀類指的是靜態的子類,用static修飾),我就在想C#中是不是也有這樣的要求呢。於是開啟編譯器開始嘗試,結果發現C#中的內部類是可以包含靜態欄位和方法的,不過在除該內部類所在的外部類之外的其他類中訪問這些靜態欄位和方法的時候是不能通過內部類物件來訪問的,只能通過“內部類名.靜態欄位/方法來訪問的”。
在Java中建立內部類物件的時候,首先需要建立外部類物件,然後通過這個外部類物件來建立內部類物件,如下:
public class A{
public class B{
}
public B getB(){
return new B();
}
}
那麼建立B的物件需要這樣寫:
A a=new A();
A.B b= a.new B();
或者
A a=new A();
A.B b=a.getB();
而在C#中則可以這樣寫:
A.B b=new A.B();
相關推薦
JAVA和C++內部類
結論:JAVA裡面的內部類比C++裡面的內部類好用 JAVA程式碼 1.OutSide.class 2._Main.class C++程式碼 1.OutSide.h 2.._Main.cpp 下
關於Java和C#的內部類的小記
今天在看Java方面的書籍的時候看到這樣一段話,說在Java中的內部類不能包含靜態方法和欄位,之後巢狀類中可以包含(內部類和巢狀類說的都是類中的子類,只不過巢狀類指的是靜態的子類,用static修飾),我就在想C#中是不是也有這樣的要求呢。於是開啟編譯器開始嘗試,結果發現C
c++內部類和外部類(java)
(1)簡介: 內部類其實就是一種在類聲明裡面定義的一種區域性資料型別。(非常類似於struct Node宣告的),這和java的還有存在區別的。 ---- 內部類的宣告有public和private之分 如果宣告為public,那麼外面也可以用它來定義變數,比如Outer:
內部類:Java和C++的不同實現
內部類 內部類是在一個類中定義的另一個類 Java和C++都支援這麼做,且內部類和繼承是不同的,這兩種行為在記憶體排布上截然不同. 舉C++為例: 繼承: class Derived : pub
Java中,內部類的概述和內部類的訪問特點和內部類的分類(內部類的位置)
back 外部 mage 對象 post info bsp 一個 strong 內部類的概述: 把類定義在另一個類的內部,該類就被稱為內部類。 舉例:把類B定義在類A中,類B就被稱為內部類。 內部類的訪問特點: A:內部類可以直接訪問外部類的成員,包括
java基礎15 內部類(成員內部類、局部內部類)和匿名內部類
body static 目前 還需 sleep imp 右下角 你好 private 一、內部類 1.1.1、成員內部類 一個類定義在另一個類的內部,那麽該類就叫作成員內部類 1.1.2、成員內部類訪問方式 方式一:在外部類中提供一個方法創建內部類的對
java中的內部類和靜態內部類
以下程式執行結果為 public class Test { public class A{ public String test="A"; } public static class B{ public Strin
Java非靜態內部類外部this物件和final型別詳解
1. 非靜態內部類是如何引用外部類this物件的 Java內部類分為靜態內部類和非靜態內部類。它們有一個比較大的區別在於,非靜態內部類擁有外部類的this物件的引用,從而使得非靜態內部類可以訪問外部類的成員函式,成員變數。這個結論我們大家都比較清楚,那麼原理大家都懂嗎?這篇文章我講通
java 使用匿名內部類的方式建立執行緒並設定和獲取執行緒名字
有些方法需要傳入介面的例項或者抽象類的例項物件,比如Thread有一個構造方法,Thread(Runnable target) 這時可以可以自定義類實現Runnable介面,重寫介面中的方法,將自定義類的物件傳入構造方法中 也可以使用匿名內部類,即在建立Thread物件時傳入Runnable
java提高篇——內部類和外部類的區別與聯絡
定義在一個類內部的類叫內部類,包含內部類的類稱為外部類。 連結:https://www.cnblogs.com/aademeng/articles/6192954.html https://www.cnblogs.com/yzssoft/p/7156809.html http://www.
java之執行緒建立的兩種方式,六種狀態和匿名內部類建立子類或實現類物件
一.匿名內部類建立子類或實現類物件 new Test(){} 相當於建立了Test類的子類物件 並且沒有類名 建立介面實現類 new 介面名() {};介面實現類的物件 注意 : new 後邊是類或者介面名 大括號內是類或者介面中的方法 public
Java提高篇(三):內部類和匿名內部類
1 public class innerclass { 2 public static void main(String[] args) { 3 System.out.println("下面是是內部類的程式展示"); 4 //建立外部類和內部類的方法有點不相同
Java static和匿名內部類
-- static Java中,任何變數 / 程式碼儲存時,都是 在編譯時 由系統自動分配記憶體; 在靜態變數編譯後,所分配的記憶體會一直存在,直到程式退出記憶體才會釋放這個空間; 類載入時,JVM會把靜態變數放到 方法區,被本類 & 本類的所有例項所共用。 --
java內部類和靜態內部類的區別及分析
java內部類:成員內部類,區域性內部類,靜態內部類匿名內部類,重點介紹成員內部類,和靜態內部類 成員內部類特點: 1,成員內部類中,不能定義靜態成員,但是可以宣告為static final 2,成員內部類,可以訪問所有的外部成員, 3,在內部類中,直接訪問外部變數名
【JAVA】執行緒建立和匿名內部類
前言 看多執行緒時,發現一些匿名內部類的東西,然後就來總結一下。 1.繼承Thread類 在類上實現匿名內部類 public class Demo1 { public static void main(String[] args) { Thread t = new T
java中的內部類和外部類的區別
由於方法中的宣告的變數,它是在方法執行時,載入到棧記憶體中,隨著方法執行結束就會被銷燬釋放。而匿名內部類是類成員的一種,它的生命週期跟外部類是一致的,這就導致方法中的變數被銷燬後,匿名內部類物件還可以訪問它,這顯然不符合邏輯。所以java這樣解決,使用final修飾,首先讓大家都不要再改動,然後匿名內部
Java非靜態內部類和靜態內部類,訪問父類的非靜態和靜態成員變數及成員函式
public class Test { // Not static variable private int mAge = 10; // Static variable private static int mId = 1; // Single inst
一道JAVA面試,執行緒安全和靜態內部類
前言:4月1號去一家網際網路公司面試,做了一份筆試。考察的內容也非常基礎,但是裡面卻充滿著各種各樣的擴充套件。但是這份題我做得並不好,平時用框架什麼的用多了,反而基礎顯得非常不紮實。憑著記憶寫起最後一套題目。記一下,紮實一下自己的基礎。 程式碼 /*
Java 內部類和匿名內部類
Java內部類和匿名內部類 1、內部類 一個類定義在另外一個類的內部,這個該類就被稱為內部類。內部類分為成員內部類(定義在外部類的成員位置)和區域性內部類(定義在外部類的方法裡面)。 (1)成員內部類
java 雙重檢查單例和靜態內部類單例
最近在看imageLoader 原始碼的時候,看到單例採用的雙重檢查機制,但是在看其他大牛寫的程式碼的時候,採用的是靜態的內部類作為單例,在此研究下。 下面是單例的相關內容: 懶漢式 //懶漢式單例類.在第一次呼叫的時候例項化自己 pub