內部類,匿名內部類

2021-06-28 11:06:10 字數 1615 閱讀 2604

內部類:

概念:(自己想到的)

內部類是一種可以直接訪問外部類的一類事物

內部類訪問外部類中的成員,包括私有。

之所以可以訪問外部類的成員,是因為內部類持有了外部類的乙個引用,

格式為:outer.this.x

外部類訪問內部類成員,需要宣告內部類的物件。

其他類訪問內部類方法:

當內部類處在成員變數的位置時,就可以被其他的類訪問到。

格式:outer.inner in = new outer.new inner();

in.function();

並且,處在成員變數的位置上,就可以被修飾成員變數的修飾符來修飾,如:

static , private

當內部類被修飾為static

,則其也只能訪問外部類的

static

成員變數了。

靜態內部類:

① 訪問靜態內部類的非靜態方法

new outer.inner().function();

② 訪問靜態內部類的靜態方法

outer.inner().function();

③ 只有靜態內部類才能定義靜態內部成員。

④ 當外部類的static

方法想訪問內部類的方法時,該內部類也必須

static的。

內部類作為類的成員,可以被private

修飾。

當某乙個變數名x

,存在於外部類,內部類,以及內部類方法中時。

呼叫內部類的成員 this.x

呼叫外部類成員 outer.this.x

方法中的內部類:

① 訪問外部類中的成員

正常訪問:

new outer.this.field;

② 訪問方法中的成員

只能訪問final

修飾的成員。

package com.itheima;

public class test3

string outfield = "我是外部類的區域性變數";

public void outmethod()

} }}

匿名內部類:

① 匿名內部類是內部類的簡寫形式

② 前提:必須是實現了某乙個介面或抽象類。

③ 由上可以看出,匿名內部類是乙個匿名子類物件

④ 格式:

new 父類名稱

().function()

注意:匿名內部類中,不要定義太多的方法。

什麼時候使用匿名內部類:

當查閱文件,這個類的父類是乙個介面,並且只有不超過三個方法,則可以使用匿名內部類。

package com.lxh.innerclass;

public class nonameinnerclass

}// 匿名內部類,必須要有父類或藉口

abstract class abstclass

class outer

} */

// 以下是匿名內部類的標準格式。

public void myfunction()

}.show(); }

}

內部類 匿名內部類

把類定義在其他類的內部,這個類就叫內部類。內部類分為 成員內部類 區域性內部類。內部類訪問特點 內部類可以直接訪問外部類的成員,包括私有。外部類訪問內部類的成員,必須建立物件。區域性內部類是定義在乙個方法或者乙個作用域裡面的類。public class outer 在區域性位置建立內部類物件,調內部...

內部類 匿名內部類

package org.lgy.study.innerclass public class anonymoustest public static void main string args public string getname public double getprice inte ce p...

內部類 匿名內部類

在乙個類中書寫另乙個類 同級類 嚴格意義上來講只是一種書寫形式不是內部類 成員內部類 全域性內部類 區域性內部類 包含匿名內部類 在當前類同級下繼續書寫其他類,書寫語法與普通類相同,但修飾符只能使用預設 在使用時與普通類一致,只是訪問範圍只有本包下,將相當於少建立了乙個檔案 員工類 public a...