java基礎《內部類》

2021-06-18 23:50:32 字數 2082 閱讀 4610

一、內部類的訪問規則:

1.內部類可以直接訪問外部類中的成員,包括私有

之所以可以直接訪問外部類中的成員,是因為內部類中持有了乙個外部類的引用————格式: 外部類名.this

2.外部類要訪問內部類,必須建立內部類物件

訪問格式:

1.當內部類定義在外部類的成員位置上,而且非私有,可以在外部其他類中,可以直接建立內部類物件。

格式外部類明.內部類名. 變數名=外部類物件.內部類物件;

例如例中的:outer.inner in=new outer().new inner();

2.當內部類定義在成員位置上,就可以被成員修飾符所修飾。

比如,private :將內部類在外部類中進行封裝。

static : 內部類就具備了靜態的特性

二、**

class outer

} void method() }

class innerclassdemo

}

一、概述

當內部類被static修飾後,只能直接訪問外部類中的static成員,即,出現了訪問侷限

問題1:那麼在外部其他類中,如何直接訪問static內部類中的非靜態成員呢?

new outer.inner1().function();

問題2.那麼在外部其他類中,那麼如何直接訪問static內部類中的靜態成員呢?

outer.inner1.function();

注意:1.當內部類中定義了靜態成員,該內部類必須是static的。

2.當外部類中的靜態方法訪問內部類時,內部類也必須是static的。

二、**

class outer

static void function1()

}}class innerclassdemo

}

一、概述

當描述事物時,事物的內部還有事物,這事物由內部類來藐視。

因為:內部事物在使用外部事物的內容。

例子:人——心臟等器官,心臟就可以定義為「人」這個類的內部類。

二、**

class body

}

一、概述

內部類定義在區域性時

1.不可以被成員修飾符修飾。

2.可以直接訪問外部類中的成員,因為還持有外部類中的引用。

但是不可以訪問他所在的區域性中的變數,只能訪問被final所修飾的區域性變數。

二、**

class outer

}new inner().function(); }}

class innerclassdemo3

}

一、概述

匿名內部類:

1.匿名內部類其實就是乙個內部類的簡寫格式。

2。定義匿名內部類的前提

內部類必須是整合乙個類或者實現介面

3.匿名內部類的格式:

new 父類或者介面()

4.匿名內部類,就是乙個匿名子類物件。

5.匿名內部類中定義的方法最好不要超過3個,因為方法過多會降低程式閱讀性。

二、**

①練習一

abstract class absdemo

class outer

} public void function()

/*②*/

public void function1()

};new absdemo()

}.show();

a.show();

因為是多型,所以不可以呼叫子類特有方法。 }}

class innerclassdemo4

}

②練習二

inte***ce inter

class test

}; }}

class innerclassdemo5

}

③練習三

class innerclassdemo6

}.method(); }

}

java基礎 內部類

一 內部類 將乙個類定義在另乙個類的裡面,對裡面那個類就稱為內部類 內建類,巢狀類 非static內部類可以直接訪問外部類中的成員,包括私有成員。原因 因為內部類中持有了乙個外部類的引用,引用的格式為 外部類名.this 非靜態內部類不能定義static成員 1 內部類定義在外部類的成員位置上 方法...

java基礎 內部類

內部類 一 內部類的訪問規則 1,內部類可以直接訪問外部類中的成員,包括私有。之所以可以直接訪問外部類中的成員,是因為內部類中持有了乙個外部類的引用,格式 外部類名.this 2,外部類要訪問內部類,必須建立內部類物件。例子 class outer static class inner2 publi...

java基礎 內部類

內部類具有 隱藏的功能 從外部類的非靜態方法之外的任何位置建立某個內部類的物件,必須outclassname.innerclassname.this 生成對外圍物件的引用,外部類的名字緊跟.thispublic outer get new 用於建立內部類物件,當生成內部類物件時,必須有外部類的例項使...