请问下怎样才算是一个内部类,最近在看android的Handler方面的东西,有点被搞晕了,一般情况下的内部类我是明白的,但是为什么Handler也算是Activity的一个内部类。
public class MainActivity extends Activity{
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
}
};
}
Handler并已经是一个被定义好的类,只不过在使用的时候一般回去重写其中的handleMessage方法,这样就算是一个内部类了吗?
这里主要是想请问下:
内部类的定义是什么?
编译器是怎么去判断一个类是内部类的
Jika anda tahu kelas dalaman umum, maka anda harus tahu kelas dalaman ini, kerana ia adalah yang paling asas.
Menurut definisi rasmi bahasa Java, kelas dalaman ditakrifkan seperti berikut:
Jika kelas ialah ahli kelas lain, ia adalah kelas dalaman.
Kelas dalaman terbahagi kepada kelas dalaman statik dan kelas dalaman bukan statik
Pengendali di atas ialah kelas dalaman bukan statik. Tidak seperti kelas dalam statik, untuk memulakan contoh kelas dalaman sedemikian, mesti ada contoh kelas luarnya terlebih dahulu.
Dalam kelas dalaman bukan statik seperti itu, anda boleh merujuk kepada contoh kelas luar melalui
MainActivity.this
. Kelas dalaman statik tidak dibenarkan.Selagi pengkompil mengenali bahawa kelas ditakrifkan dalam kelas lain, ia akan mengetahui bahawa ia adalah kelas dalaman.
Ini dipanggil kelas dalaman tanpa nama