1. 程式人生 > >Java內部類詳解 及 區域性內部類和匿名內部類只能訪問區域性final變數的原因

Java內部類詳解 及 區域性內部類和匿名內部類只能訪問區域性final變數的原因

說起內部類這個詞,想必很多人都不陌生,但是又會覺得不熟悉。原因是平時編寫程式碼時可能用到的場景不多,用得最多的是在有事件監聽的情況下,並且即使用到也很少去總結內部類的用法。今天我們就來一探究竟。下面是本文的目錄大綱:

  一.內部類基礎

  二.深入理解內部類

  三.內部類的使用場景和好處

  四.常見的與內部類相關的筆試面試題

  若有不正之處,請多諒解並歡迎批評指正。

  請尊重作者勞動成果,轉載請標明原文連結:

  http://www.cnblogs.com/dolphin0520/p/3811445.html

一.內部類基礎

  在Java中,可以將一個類定義在另一個類裡面或者一個方法裡面,這樣的類稱為內部類。廣泛意義上的內部類一般來說包括這四種:成員內部類、區域性內部類、匿名內部類和靜態內部類。下面就先來了解一下這四種內部類的用法。

  1.成員內部類

  成員內部類是最普通的內部類,它的定義為位於另一個類的內部,形如下面的形式:

1 2 3 4 5 6 7 8 9 10 11 12 13 class Circle { double radius = 0; public Circle(double radius) { this.radius = radius; } class Draw {     //內部類 public void drawSahpe() {
System.out.println("drawshape"); } } }

  這樣看起來,類Draw像是類Circle的一個成員,Circle稱為外部類。成員內部類可以無條件訪問外部類的所有成員屬性和成員方法(包括private成員和靜態成員)。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 class Circle { private double radius = 0;
public static int count =1; public Circle(double radius) { this.radius = radius; } class Draw {     //內部類 public void 

相關推薦

Java部類 區域性部類匿名部類只能訪問區域性final變數原因

說起內部類這個詞,想必很多人都不陌生,但是又會覺得不熟悉。原因是平時編寫程式碼時可能用到的場景不多,用得最多的是在有事件監聽的情況下,並且即使用到也很少去總結內部類的用法。今天我們就來一探究竟。下面是本文的目錄大綱:   一.內部類基礎   二.深入理解內部類   三.內部類的使用場景和好處   

Java Set集合Set與List的區別

Java中的Set集合是繼承Collection的介面,是一個不包含重複元素的集合。     下圖是Set集合的原始碼。 Set和List都是以介面都形式來進行宣告。Set主要包含三種存放資料型別都變數,分別是HashSet,LinkedHashSet,TreeSet

Java反射機制 Method.invoke解釋

JAVA反射機制 JAVA反射機制是在執行狀態中,對於任意一個類,都能夠知道這個類的所有屬性和方法;對於任意一個物件,都能夠呼叫它的任意一個方法;這種動態獲取的資訊以及動態呼叫物件的方法的功能稱為java語言的反射機制。 Java反射機制主要提供了以下功能: 在執行時判

Java排序演算法示例彙總——超詳細

氣泡排序、選擇排序、直接插入排序、二分法排序、希爾排序、快速排序、堆排序、歸併排序、基數排序,共9中排序演算法詳解和程式碼示例。示例中全部採用從小到大排序,編碼方式為本人理解的思路,演算法思想也是自己理解的口語表達方式,若想檢視更準確的演算法思想和程式碼示例可直接搜尋各演算法

Java反射機制 Method.invoke 解釋

Java反射機制 Java反射機制是在執行狀態中,對於任意一個類,都能夠知道這個類的所有屬性和方法;對於任意一個物件,都能夠呼叫它的任意一個方法;這種動態獲取的資訊以及動態呼叫物件的方法的功能稱為:Java語言的反射機制。 Java反射機制主要提供以下幾個功能:

Java反射機制 Method.invoke解釋1

自:https://blog.csdn.net/mr_tim/article/details/51594717 JAVA反射機制 JAVA反射機制是在執行狀態中,對於任意一個類,都能夠知道這個類的所有屬性

Java記憶體溢位解決方案

記憶體溢位與資料庫鎖表的問題,可以說是開發人員的噩夢,一般的程式異常,總是可以知道在什麼時候或是在什麼操作步驟上出現了異常,而且根據堆疊資訊也很容易定位到程式中是某處出現了問題。記憶體溢位與鎖表則不然,一般現象是操作一般時間後系統越來越慢,直到宕機,但並不能明確是在什麼操作上

Java 反射機制 Method.invoke解釋

JAVA反射機制 JAVA反射機制是在執行狀態中,對於任意一個類,都能夠知道這個類的所有屬性和方法;對於任意一個物件,都能夠呼叫它的任意一個方法;這種動態獲取的資訊以及動態呼叫物件的方法的功能稱為java語言的反射機制。 Java反射機制主要提供了以下功能: 在執行時判斷任

Java虛擬機04----GC算法種類【重要】

置1 可用 死鎖 collect 一個 描述 player use 遍歷 【聲明】 歡迎轉載,但請保留文章原始出處→_→ 生命壹號:http://www.cnblogs.com/smyhvae/ 文章來源:http://www.cnblogs.com/smyhvae/p

java動態代理,並用動態代理註解實現日誌記錄功能

動態代理的概念       動態代理是程式在執行過程中自動建立一個代理物件來代替被代理的物件去執行相應的操作,例如, 我們有一個已經投入執行的專案中有一個使用者DAO類UserDao用來對User物件進行資料庫的增刪改查操作,但是有一天,要求在對使用者的增刪改查操作時記錄相

RTSP請求RTP 基於UDPTCP協議傳輸資料的對比

最近一段時間一直在研究rtsp和rtp,現在寫部落格總結一下,也是對知識的一種鞏固吧。 下面是我用VLC播放器獲取海康NVR視訊的截圖(此次獲取是基於TCP的): 下面來看一下針對每一條訊息的詳細截圖: 客戶端傳送的OPTION訊息: 伺服器對OPTION回覆的200

2020了你還不會Java8新特性?方法引用Stream 流介紹操作方式(三)

方法引用詳解 方法引用: method reference 方法引用實際上是Lambda表示式的一種語法糖 我們可以將方法引用看作是一個「函式指標」,function pointer 方法引用共分為4類: 類名::靜態方法名 引用名(物件名)::例項方法名 類名::例項方法名 (比較不好理解,個地方呼叫的方

Java區域性部類匿名部類的區別(附原始碼)

前言        前面提到過,可以在程式碼塊裡建立內部類,典型的方式是在一個方法體裡面建立。區域性內部類不能有訪問說明符,因為它不是外圍類的一部分;但是他可以訪問當前程式碼塊內的常量,以及此外圍類

“全棧2019”Java第九十四章:區域性部類

難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文連結 “全棧2019”Java第九十四章:區域性內部類詳解 下一章 “全棧2019”Java第九十五章:方法中可以定義靜態

“全棧2019”Java第一百零一章:區域性部類覆蓋作用域成員

難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文連結 “全棧2019”Java第一百零一章:區域性內部類覆蓋作用域內成員詳解

Java部類

strong 匿名 per 創建 show rac 成員變量 end outer 成員內部類(聲明在類內部且方法外的):1是外部類的一個成員:①可以有修飾符(4個)②static final ③可以調用外部類的屬性、方法

JAVA】的部類

轉載部落格: https://www.cnblogs.com/dolphin0520/p/3811445.html 作者:海 子   說起內部類這個詞,想必很多人都不陌生,但是又會覺得不熟悉。原因是平時編寫程式碼時可能用到的場景不多

【轉】Java部類

一、內部類基礎   在Java中,可以將一個類定義在另一個類裡面或者一個方法裡面,這樣的類稱為內部類。廣泛意義上的內部類一般來說包括這四種:成員內部類、區域性內部類、匿名內部類和靜態內部類。下面就先來了解一下這四種內部類的用法。     1、成員內部類   成員內部類是最普通的內部類,它的定

Java筆記之內部類匿名部類

內部類 內部類訪問特點: 1、內部類可以直接訪問外部類中的成員 2、外部類要訪問內部類,必須建立內部類的物件 class Outer { private int num=3; class Inner //內部類 { void s

java提高篇-----匿名部類

在java提高篇-----詳解內部類中對匿名內部類做了一個簡單的介紹,但是內部類還存在很多其他細節問題,所以就衍生出這篇部落格。在這篇部落格中你可以瞭解到匿名內部類的使用、匿名內部類要注意的事項、如何初始化匿名內部類、匿名內部類使用的形參為何要為final。 一、使用匿名內部類內部類 &nb