淺析總結 Java 內部類的一些使用與梳理

Java 內部類有許多需要注意的地方 ,相信大家平時都在用,但是有些地方是需要注意的,在這裏給大家總結一下。

內部類的位置

public class A {
class B {
}
public void pint() {
class C {
}
new C();
}
public void pint(boolean b) {
if (b) {
class D {
}
new D();
}
}
}

從代碼中可以看出,內部類可以定義到很多地方,常用的是成員變量中(B),方法中也叫局部內部類(C),作用域中(D)。

從上面來看似乎沒有用到過在方法中和作用域中的情況啊,這就錯了;再來看看這個:

public interface AInterface {
void show();
}
public class B {
public void show() {
class Man implements AInterface {
@Override
public void show() {
}
}
Man man = new Man();
man.show();
}
}

其中我們定義了兩個文件,一個文件是一個接口類,一個是B文件;在B類中,的show()方法中我們使用了局部內部類的方式創建了類Man,Man class繼承接口並實現方法,隨後使用該類。

內部類的權限

爲什麼要有內部類的存在?

在我看來類主要的就是封裝、繼承、多態;當然其中的回調思想我認爲是很重要的;而內部類的出現就是爲了簡化多重繼承的問題;一個A類,並不能繼承多個其他類,但是在使用中又需要使用到其他類的方法,這個時候內部類就發揮作用了;典型的就是事件點擊的回調實現。

那麼內部類的權限究竟有多大?

至於答案是什麼,代碼上看看就知道了。

public class C {
int a = 1;
private int b = 2;
protected int c = 3;
public int d = 4;
void a() {
System.out.println(“A:” + a);
}
private void b() {
System.out.println(“B:” + b);
}
protected void c() {
System.out.println(“C:” + c);
}
public void d() {
System.out.println(“D:” + d);
}
class D {
void show() {
int max = a + b + c + d;
a();
b();
c();
d();
System.out.println(“Max:” + max);
}
}
public static void main(String[] args) {
D d = new C().new D();
d.show();
}
}
圖片描述
**學習Java的同學注意了!!!
學習過程中遇到什麼問題或者想獲取學習資源的話,歡迎加入Java學習交流羣,羣號碼:521352947 我們一起學Java!**

發佈了34 篇原創文章 · 獲贊 2 · 訪問量 6465
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章