java 匿名内部类 百科_java匿名内部类具体概念是什么,在什么地方用到?

展开全部

java匿名内部类一定是在new的后面,用其隐含实现一个接口或实现一个类,没有类名,根据多态,我们e69da5e887aa62616964757a686964616f31333337613863使用其父类名。因他是局部内部类,那么局部内部类的所有限制都对其生效。匿名内部类是唯一一种无构造方法类。大部分匿名内部类是用于接口回调用的。匿名内部类在编译的时候由系统自动起名Out$1.class。如果一个对象编译时的类型是接口,那么其运行的类型为实现这个接口的类。因匿名内部类无构造方法,所以其使用范围非常的有限。当需要多个对象时使用局部内部类,因此局部内部类的应用相对比较多。匿名内部类中不能定义构造方法。如果一个对象编译时的类型是接口,那么其运行的类型为实现这个接口的类。

示例如下:public class Outer {

private static int i = 1;

private int j = 10;

public static void outer_f1(){

}

public void outer_f2(){

}

// 静态内部类可以用public,protected,private修饰

// 静态内部类中可以定义静态或者非静态的成员

static class Inner{

static int inner_i = 100;

int inner_j = 200;

static void inner_f1(){

System.out.println("Outer.i"+i);//静态内部类只能访问外部类的静态成员

outer_f1();//包括静态变量和静态方法

}

void inner_f2(){

// System.out.println("Outer.i"+j);//静态内部类不能访问外部类的非静态成员

// outer_f2();//包括非静态变量和非静态方法

}

}

public void outer_f3(){

// 外部类访问内部类的静态成员:内部类.静态成员

System.out.println(Inner.inner_i);

Inner.inner_f1();

// 外部类访问内部类的非静态成员:实例化内部类即可

Inner inner = new Inner();

inner.inner_f2();

}

public static void main(String[] args) {

new Outer().outer_f3();

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值