本文共 1394 字,大约阅读时间需要 4 分钟。
在java里类中再定义类,这种在其他类内部类叫做内部类,在Android开发里最常见有三种内部类分别是(成员内部类、方法内部类、匿名内部类)
一、成员内部类
1 public class Test {2 //不对外开放的 3 class memberInnerClass{ 4 public void memberInner(){ 5 System.out.println("成员内部类"); 6 } 7 } 8 }
编译一下,我们看到目录中出现了两个class文件在我们的工作目录里,可以看到多出一个Test$memberInClass.class的文件,这是就是内部类编译后的class文件
成员内部类的特点:
二、方法内部类
1 public class A {2 3 public void A(){ 4 System.out.println("方法内部类"); 5 } 6 7 }
1 public class Test { 2 3 public void methodInner(){ 4 //短暂性的 5 class B extends A{ 6 7 } 8 new B().A(); 9 } 10 }
方法内部类特点:
三、匿名内部类(在Android里最常见的一种)
当我们把内部类的定义和声明写到一起时,就不用给这个类起个类名而是直接使用了,这种形式的内部类根本就没有类名,因此我们叫它匿名内部类
1 public abstract class A implements B{ 2 3 public void A(){ 4 System.out.println("A"); 5 } 6 7 }
1 public interface B{2 3 public void B(); 4 5 }
1 public class Test { 2 3 public static void main(String[] args) { 4 //new出接口或者实现类 5 A a= new A (){ 6 //实现接口里未实现的方法 7 public void B() { 8 System.out.println("匿名内部类"); 9 } 10 }; 11 a.A(); 12 a.B(); 13 }
匿名内部类的特点: