- 什么是内部类
- 内部类的使用方法
- 匿名内部类的使用方法
内部类可以随意使用外部类
class A{ int i; class B{ //B是A的内部类 int j; int funB(){ int result = i + j ;//在B中可以使用外部类的成员变量 return result; } } }
class Test{ public static void main(String regs[]){ A a = new A(); A.B b = a.new B(); //生成内部类的对象 a.i = 3; b.j = 2; int result = b.funB(); System.out.println(result); //result == 5 } }
==============================================================
interface A{ // 定义一个接口 public void doSomething(); }
class B { public void fun(A a){ //将A类作为参数 System.out.println("B的方法"); a.doSomething(); //调用A类的方法 } }
class AImpl implements A{ //AImpl实现A接口 public void doSomething(){ System.out.println("doSomething1"); } }
interface Test{ public static void main(String args[]){ AImpl al = new AImpl(); // A a = al ; //向上转型 转成A类 B b = new B();// 生成B的对象 b.fun(al);// 直接用al做参数可以省掉向上转型的步骤 } }
=======================================================================
匿名内部类写法
interface A{ // 定义一个接口 public void doSomething(); }
class B { public void fun(A a){ //将A类作为参数 System.out.println("B的方法"); a.doSomething(); //调用A类的方法 } }
interface Test{ public static void main(String args[]){ B b = new B();// 生成B的对象 b.fun(new A(){//匿名内部类 生成一个A的对象直接给B.fun用 public void doSomething(){ System.out.println("匿名内部类"); } }); } }
时间: 2024-11-10 02:48:12