java四種巢狀類的使用環境
巢狀類有四種:靜態成員類、非靜態成員類、匿名類、區域性類。除了第一種之外,其他三種被稱為內部類。
四種不同的巢狀類,每一種都有自己的用途。如果一個巢狀類需要在單個方法之外可見,或者它太長了,不適合於放在方法內部,就應該使用成員類。如果成員類的每個例項都需要指向其外圍例項的引用,就要把成員類做成非靜態的;否則,就做成靜態的。假設這個巢狀類屬於一個方法的內部,如果你只需要在一個地方建立例項,並且已經有了一個預置型別可以說明這個類的特徵,就把它做成匿名類;否則,就做成區域性類。
---摘自《Effective java》第四章類和介面22條--優先考慮靜態成員類
相關推薦
java四種巢狀類的使用環境
巢狀類有四種:靜態成員類、非靜態成員類、匿名類、區域性類。除了第一種之外,其他三種被稱為內部類。 四種不同的巢狀類,每一種都有自己的用途。如果一個巢狀類需要在單個方法之外可見,或者它太長了,
Java中的巢狀類、內部類、靜態內部類
在Java中我們在一個類的內部再定義一個類,如下所示:class OuterClass { ... class NestedClass { ... } }那麼在上面的例子中我們稱OuterClass為外圍類(enclosing clas
從頭認識java-8.9 巢狀類(使用static的內部類)
這一章節我們來討論一下巢狀類。1.概念內部類使用static的時候就是巢狀類。package com.ray.ch07; public class Test { private static class MyTest3{} }MyTest3就是巢狀類2.注意點(1)只
Java例項說明 巢狀類包括內部類(即非靜態巢狀類)和靜態巢狀類 兩者的區別
內部類例項程式碼: public class OuterMyTest {class InnerMyTest{} public static void main(String[] args) {InnerMyTest innerMyTest = new InnerMyT
Java中的巢狀類總結
一直對內部類、靜態內部類這些名詞的認識不太清晰,做一些小小的總結。 一、什麼是巢狀類(nested class)? 首先Java中的巢狀類(nested class)是指定義在另一個類的內部的類,所以叫巢狀類。它有很多種分類的方式,從型別上分,有成員類(me
Java™ 教程(巢狀類)
巢狀類 Java程式語言允許你在另一個類中定義類,這樣的類稱為巢狀類,如下所示: class OuterClass { ... class NestedClass { ... } } 術語:巢狀類分為兩類:靜態和非靜態,宣告為
Java四種引用類型
c++ 依據 回收算法 主動 size 存在 list 創建 字節 引用與對象 每種編程語言都有自己操作內存中元素的方式,例如在 C 和 C++ 裏是通過指針,而在 Java 中則是通過“引用”。 在 Java 中一切都被視為了對象,但是我們操作的標識符實際上是對象的一個引
java遺珠之巢狀類
使用內部類的原因 1.合乎只在一個地方備用的邏輯: 如果一個類僅僅被一個別的類使用,那麼把這個類嵌入到使用它的類中非常符合邏輯,巢狀這樣的幫助類是的package變得簡潔。 2.有益於封裝: 如果兩個類A和B,如果B需要訪問A定義為private的成員,那
Java基礎教程(14)--巢狀類
Java允許在一個類中定義另外一個類,這樣的類被稱為巢狀類,就像下面這樣: class OuterClass { ... class NestedClass { ... } } 巢狀類分為兩種:靜態的和非靜態的。宣告為static的巢狀類被稱為靜態巢狀類,非
“全棧2019”Java第六十七章:內部類、巢狀類詳解
難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文連結 “全棧2019”Java第六十七章:內部類、巢狀類詳解 下一章 “全棧2019”Java第六十八章:外部類訪問內部類
深入理解JAVA的巢狀類和內部類
巢狀類參看這篇文章 內部類詳細參看這篇文章 值得注意的是 靜態內部類不能訪問外部非靜態成員(受Java靜態成員不能訪問非靜態成員約定的約束) 內部類的.class檔名稱格式如下: 如果是靜態巢狀類、內部巢狀類,則表示為OuterClass$InnerClass.cla
【java面試題】Static Nested Class(巢狀類) 和 Inner Class(內部類)的不同 、final、static
前言: 本來是想總結一下inner class 的用法,但是卻發現這幾位頗為親近。索性一起拉出來溜溜。 寫作目的: 跟 static , final, inner class 搞好關係,以便將來遇見了,就像用if ,else一樣,一清二楚。 文中的術語定義以java language spec為準。 先想想
java中的內部類(巢狀類)
1.內部類:定義在另一個類裡面的類 外部類:包含內部類的類 2.內部類的名字不允許與外部類的名字相同。因為在外部引用它時必須給出帶有外部類名的完整名稱(外部類名.內部類名) 3.內部類可以是抽象類或介面,若是介面,則可以由其他巢狀類實現。 4.巢狀類不要濫
Java內部類(inner Class)和巢狀類(static inner Class)也就是靜態內部類的區別
內部類和靜態類有著本質的區別,有點類似普通成員變數和靜態成員變數的區別。 . 內部類可以看成是外部類的普通成員變數,這個成員變數可以使用外部類的屬性(靜態和非靜態),可以呼叫外部類的方法(靜態和非靜態),而且內部類還持有外部類物件作為其自身的一個屬性,這個屬
java靜態巢狀類 或叫 靜態內部類
一. 什麼是巢狀類及內部類? 可以在一個類的內部定義另一個類, 這種類稱為巢狀類(nested classes), 它有兩種型別: 靜態巢狀類和非靜態巢狀類。 靜態巢狀類使用很少, 最重要的是非靜態巢狀類, 也即是被稱作為內部類(inner). 巢狀類從JDK1.1開始引
【Java學習筆記】靜態巢狀類和內部類
public class Outer { int outer_x = 100; class Inner{ public int y = 10; private int z = 9; int m = 5; publ
Java的內部類(Inner Class)和巢狀類(Nested Class)的區別
內部類是類中類(內部類不為同一包的其他類可見,具有很好的封裝性),分為靜態內部類,成員內部類,區域性內部類以及匿名內部類;區域性內部類寫在方法裡面;用到最多的就是匿名內部類,例子如下: 首先定義一個介面:Interface A{ public void method();}
java巢狀類的四大型別
因為欣賞所以轉載:先宣告轉摘地址吧 http://www.cnblogs.com/o-andy-o/archive/2012/04/07/2435825.html 內部類分為成員內部類、靜態巢狀類、方法內部類、匿名內部類。 幾種內部類的共性: A、內部類仍然是一個獨立的
深入理解java巢狀類和內部類、匿名類
四、在外部類中定義內部類 匿名類就是沒有名字的內部類,是內部類的一種特殊情況。????????? 這句話對嗎??? 前端時間在寫.net專案中,一直錯將.cs裡的兩個class當作內部類,原來是一個檔案裡的兩個類而已,這讓我想起了Java中的內部類,比較內部類,那麼還有兩個類,那就是匿名類和匿名
Java巢狀類(內部類)總結
巢狀類(nested class)是指被定義在另一個類的內部的類。巢狀類的目的應該只是為它的外圍類(enclosing class)提供服務。如果巢狀類將來可能會用於其他某個環境中,它就應該是頂層類,而不是被設計為巢狀類。巢狀類分如下四種: 靜態成員類(static mem