java關於類(內部類,外部類,匿名類)的相關面試題
一個“.java”原始檔中是否可以包含多個類(不是內部類)?有什麼限制?
答:可以,但一個原始檔中最多隻能有一個公開類(public class)而且檔名必須和公開類的類名完全保持一 致。
Anonymous Inner Class(匿名內部類)是否可以繼承其它類?是否可以實現介面?
答:可以繼承其他類或實現其他介面,在Swing程式設計中常用此方式來實現事件監聽和回撥。
內部類可以引用它的包含類(外部類)的成員嗎?有沒有什麼限制?
答:一個內部類物件可以訪問建立它的外部類物件的成員,包括私有成員
一個 “.java” 原始檔中是否可以包括多個類(不是內部類)?有什麼限制?
答:可以有多個類,但只能有一個 public 的類,並且 public 的類名必須與檔名相一致。
什麼是值傳遞和引用傳遞?
答:物件被值傳遞,意味著傳遞了物件的一個副本。因此,就算是改變了物件副本,也不會影響源物件的值。
物件被引用傳遞,意味著傳遞的並不是實際的物件,而是物件的引用。因此,外部對引用物件所做的改變會反映
到所有的物件上。
相關推薦
java關於類(內部類,外部類,匿名類)的相關面試題
一個“.java”原始檔中是否可以包含多個類(不是內部類)?有什麼限制? 答:可以,但一個原始檔中最多隻能有一個公開類(public class)而且檔名必須和公開類的類名完全保持一 致。 Anonymous Inner Class(匿名內部類)是否可以繼承其它類?是否可以實現介面
Java基礎,外部類能夠訪問內部類的私有靜態欄位。
外部類能夠訪問內部類的私有靜態欄位。 public class Singleton { private Singleton() { } public static Singleton getInstance() { retur
c++內部類和外部類(java)
(1)簡介: 內部類其實就是一種在類聲明裡面定義的一種區域性資料型別。(非常類似於struct Node宣告的),這和java的還有存在區別的。 ---- 內部類的宣告有public和private之分 如果宣告為public,那麼外面也可以用它來定義變數,比如Outer:
內部類呼叫外部類屬性(new 物件,屬性重新初始化)
package com.example.myapplication; import android.app.Activity; import android.os.Bundle; import a
Java巢狀類(內部類)總結
巢狀類(nested class)是指被定義在另一個類的內部的類。巢狀類的目的應該只是為它的外圍類(enclosing class)提供服務。如果巢狀類將來可能會用於其他某個環境中,它就應該是頂層類,而不是被設計為巢狀類。巢狀類分如下四種: 靜態成員類(static mem
Java內部類引用外部類中的局部變量為何必須是final問題解析
lib soft 編譯器 art http word tail ace 軟件 今天編寫一個多線程程序,發現在方法內定義內部類時,如果內部類調用了方法中的變量,那麽該變量必須申明為final類型,百思不得其解,後來想到應該是生命周期的原因,因為方法內定義的變量是局部變量,
Java內部類持有外部類的引用詳細分析與解決方案
調用 lai urn star keyword inner android get sta 在Java中內部類的定義與使用一般為成員內部類與匿名內部類,他們的對象都會隱式持有外部類對象的引用,影響外部類對象的回收。 GC只會回收沒有被引用或者根集不可到達的對象(取決於GC算
當內部類和外部類存在同名成員時,如何訪問外部類的成員
rgs sta 內部類 public func main 外部 str print 打印結果是什麽 答案2public class Test { public static void main(String[] args) { Outer.Inner on = ne
Python沒有"內部類"這一說法,內部類訪問外部類例項的成員,需要將外部類例項作為引數傳入。
除了傳outter的例項做為引數外,似乎沒有簡單的方式了。 內部類本身是不知道自己被哪個外部類包含的,也就是說語言中沒有提供訪問外部類的關鍵字或者方法,因此除了使用的語法有一點點不同外,其他和外部類沒有什麼區別的。 就是傳遞引數了 class Outter: nam
Java學習(內部類)
1. 成員內部類 1)格式: 修飾符 class 類名稱 { 修飾符 class 類名稱 { //...... } //...... } 2)內部類呼叫包含該內部類的外部類類成員變數與方法隨意訪問,反過來則需要使用內部類物件
java提高篇——內部類和外部類的區別與聯絡
定義在一個類內部的類叫內部類,包含內部類的類稱為外部類。 連結:https://www.cnblogs.com/aademeng/articles/6192954.html https://www.cnblogs.com/yzssoft/p/7156809.html http://www.
10、【C++】前向宣告、巢狀類、區域性類(內部類)
一、前向宣告 在C++中,類需要先定義,而後才能被例項化,但是實際存在一種場景是:兩個類需要相互引用或相互成為類中的子物件成員時,就無法先定義使用,在編譯環節就出現錯誤導致編譯失敗,這時就需要用到前向宣告,此外,前向宣告的類不能被例項化。 【示例】 //
“全棧2019”Java第七十二章:靜態內部類訪問外部類成員
難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文連結 “全棧2019”Java第七十二章:靜態內部類訪問外部類成員 下一章 “全棧2019”Java第七十三章:外部類裡多
內部類,外部類成員的相互訪問 及內部類物件的建立
class Human { private String word = "We "; protected void en() { System.out.print("yes, "); } class chineseBrain //一內部類,可
“全棧2019”Java第七十五章:內部類持有外部類物件
難度 初級 學習時間 10分鐘 適合人群 零基礎 開發語言 Java 開發環境 JDK v11 IntelliJ IDEA v2018.3 文章原文連結 “全棧2019”Java第七十五章:內部類持有外部類物件 下一章 “全棧2019”Java第七十六章:靜態、非靜態內
Java 內部類呼叫外部類方法的一個注意點
今天在寫程式碼的時候,涉及到使用一個內部類去呼叫外部類方法的問題,總是得不到我想要的結果,後經過DEBUG,才發現哪裡出現了問題。現寫了一個簡單的程式碼,來重現這個問題。 打印出來的結果為: a: 20 a: 0 a: 20 為什麼是這麼一個結果呢?我想,對第一個 20
Java內部類和外部類互相訪問問題
今天在分析android的AMS的時候,發現在AMS中出現了內部類訪問外部類私有方法的操作,一時之間覺得有些奇怪:為毛private的方法可以被訪問??之前的認識是private方法是不可以通過物件方式呼叫的,但是現在的程式碼確實這麼做了!!為什麼呢? 帶著這
關於Java的一些小總結-內部類、外部類
內部類: 內部類一般來說共分為4種:常規內部類、靜態內部類、區域性內部類、匿名內部類 一.常規內部類:常規內部類沒有用static修飾且定義在在外部類類體中。 1.常規內部類中的方法可以直接使用外部類的例項變數和例項方法。 2
Java 內部類與外部類的關係
由於方法中的宣告的變數,它是在方法執行時,載入到棧記憶體中,隨著方法執行結束就會被銷燬釋放。而匿名內部類是類成員的一種,它的生命週期跟外部類是一致的,這就導致方法中的變數被銷燬後,匿名內部類物件還可以訪問它,這顯然不符合邏輯。所以java這樣解決,使用final修飾,首先讓大家都不要再改動,然後匿名內部
java中的內部類和外部類的區別
由於方法中的宣告的變數,它是在方法執行時,載入到棧記憶體中,隨著方法執行結束就會被銷燬釋放。而匿名內部類是類成員的一種,它的生命週期跟外部類是一致的,這就導致方法中的變數被銷燬後,匿名內部類物件還可以訪問它,這顯然不符合邏輯。所以java這樣解決,使用final修飾,首先讓大家都不要再改動,然後匿名內部