java 內部類如何訪問外部類的同名屬性
package com.card;
/**
* 內部類如何訪問外部類的同名屬性
*
* by Zhiwang Zhang on 2014年7月18日
*/
public class Test95 {
private int age;
public static void main(String[] args) {
Test95 test = new Test95();
test.func();
}
public void func() {
InnerClass innerClass = new InnerClass();
innerClass.getOutterPrivate();
}
// 內部類
public class InnerClass {
private int age = 1;
// 普通內部類有指向外部類的引用
public void getOutterPrivate() {
System.out.println(Test95.this.age);
}
}
}
相關推薦
Java內部類訪問外部物件為什麼必須是final的呢?
一個謎團 如果你用過類似guava這種“偽函數語言程式設計”風格的library的話,那下面這種風格的程式碼對你來說應該不陌生: 1 2 3 4 5 6 7 8 9 public void tryUsingGuava() { final int expectedLength = 4;
Java內部類訪問區域性變數時的final問題
JAVA用了也快三年了,內部類訪問區域性變數的情況也沒少遇到。也一直知道要給變數加個final修飾符,不然通過不了編譯。但一直也沒深究過為什麼要加。昨天好奇的上網查了下,並翻閱了下相關的書籍(Core Java 8th),終於算是搞明白了,在這裡簡單說明下。 說先我們來
Java 內部類訪問格式
訪問格式: 1,當內部類定義在外部類的成員位置上,而且非私有,可以在外部其他類中。 可以直接建立內部類物件。 格式外部類名.內部類名 變數名 = 外部類物件.內部類物件;Outer.Inner in = new Outer().new Inner(); 2,當內部類在成員
Java內部類訪問規則
訪問格式: 1 、當內部類定義在外部類的成員位置上,而且非私有,可以在外部其他類中,直接建立內 部類物件。 格式為:外部類名 . 內部類名變數名 = 外部物件 . 內部物件; Outer.Inner in = new Outer().new Inner(); 靜態內部類: 2 、當內部類
為什麼java內部類訪問區域性變數必須宣告為final?
先丟擲讓我疑惑了很久的一個問題 程式設計時,線上程中使用區域性變數時候經常編譯器會提示:區域性變數必須宣告為final package test; publicclass ThreadTest { publicvoid function(Stri
區域性內部類訪問外部變數為什麼需要使用final修飾
因為生命週期的原因。方法中的區域性變數,方法結束後這個變數就要釋放掉,final保證這個變數始終指向一個物件。首先,內部類和外部類其實是處於同一個級別,內部類不會因為定義在方法中就會隨著方法的執行完畢而跟隨者被銷燬。問題就來了,如果外部類的方法中的變數不定義final,那麼
Accessing Outside Variables with the Final Keyword內部類訪問外部變數
Sometimes you want to access information available outside of the inner class. Consider the following example. You’ve got a screen with
java 內部類如何訪問外部類的同名屬性
package com.card; /** * 內部類如何訪問外部類的同名屬性 * * by Zhiwang Zhang on 2014年7月18日 */ public class Test95 { private int age; public sta
java內部類所訪問的區域性變數為什麼要加final
如果我們在一個類中宣告一個內部類,在這個內部類中訪問了原來類中的區域性變數,那麼這個區域性變數必須在原來的類中宣告成final,如圖: class A { final int a=1;; class B { int b=a; } } 這是為什麼呢? 答案是,因為在原
java:面向物件-區域性內部類訪問區域性變數的問題
* 區域性內部類訪問區域性變數必須用final修飾* 區域性內部類在訪問他所在方法中的區域性變數必須用final修飾,為什麼? 因為當呼叫這個方法時,區域性變數如果沒有用final修飾,他的生命週期和方
“全棧2019”Java第七十二章:靜態內部類訪問外部類成員
難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文連結 “全棧2019”Java第七十二章:靜態內部類訪問外部類成員 下一章 “全棧2019”Java第七十三章:外部類裡多
“全棧2019”Java第七十六章:靜態、非靜態內部類訪問權限
inf 內部類 靜態 alt intel com 詳解 int 文章 難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文鏈接 “全棧2019”Java第七十六章:靜態、非靜
“全棧2019”Java第七十六章:靜態、非靜態內部類訪問許可權
難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文連結 “全棧2019”Java第七十六章:靜態、非靜態內部類訪問許可權 下一章 “全棧2019”Java第七十七章:抽象內
Java內部類是如何獲取外部類的private屬性
關於內部類是如何獲取外部類的private屬性 上一段程式碼: public class OuterClass { private static String language = "en"; private String region = "U
Java內部類和外部類互相訪問問題
今天在分析android的AMS的時候,發現在AMS中出現了內部類訪問外部類私有方法的操作,一時之間覺得有些奇怪:為毛private的方法可以被訪問??之前的認識是private方法是不可以通過物件方式呼叫的,但是現在的程式碼確實這麼做了!!為什麼呢? 帶著這
Java中外部類訪問內部類的方法
內部類可用來自定義資料結構,而外部類訪問內部類可用(t.new guo()).gg()實現。其中t為外部類物件,guo為內部類,gg()是內部類方法。具體程式碼如下: package XiaoMi; public class test6 { private guo g
java內部類中間可以用super訪問父類的私有方法
A B是兩個內部類 @Test public void testttt(){ new B().bFunc(); } class A { pr
Java-內部類(三)成員內部類就應該訪問外部類的成員!!
可以看到第一行,在內部類的內部維護了一個名稱為this&0, 型別為我定義的外部類,的變數,同時這個變數被finnal修飾;同時,在下圖黃字部分deputfield,是編譯器將外部類的的變數賦值給this&0,這樣就在內部類持有了一個外部類型別的變數,用來方位外部類的成員。
Java內部類詳解 及 區域性內部類和匿名內部類只能訪問區域性final變數的原因
說起內部類這個詞,想必很多人都不陌生,但是又會覺得不熟悉。原因是平時編寫程式碼時可能用到的場景不多,用得最多的是在有事件監聽的情況下,並且即使用到也很少去總結內部類的用法。今天我們就來一探究竟。下面是本文的目錄大綱: 一.內部類基礎 二.深入理解內部類 三.內部類的使用場景和好處
java中內部類訪問區域性變數為什麼要定義區域性變數為final
因為方法內定義的變數是區域性變數,離開該方法,變數就失去了作用,也就會自動被消除,而內部類卻不會離開它所在方法就失去作用,它有更廣的生命週期,下面通過一個例項加以說明: 如例中所示,在外部類Outer中聲明瞭一個內部類TimerPrint,這個類中的方法引用了方法start