精华内容
下载资源
问答
  • 主要给大家介绍了关于Java匿名内部类的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 匿名内部类其实就是没有名称的内部类,在调用包含有接口类型参数的方法时,通常为零简化代码,不会创建一个接口的实现类作为方法参数传入,而是直接通过匿名内部类的形式传入一个接口类型参数,在匿名内部类中直接...

    前言

    在Java中调用某个方法时,如果该方法的参数是一个接口类型,除了可以传入一个参数接口实现类,还可以使用匿名内部类实现接口来作为该方法的参数。

    匿名内部类其实就是没有名称的内部类,在调用包含有接口类型参数的方法时,通常为零简化代码,不会创建一个接口的实现类作为方法参数传入,而是直接通过匿名内部类的形式传入一个接口类型参数,在匿名内部类中直接完成方法的实现。

    创建匿名内部类的基本语法格式如下:

    new 父接口(){

    //匿名内部类实现部分

    }

    示例

    interface Animal{

    void shout();

    }

    public class Example21 {

    public static void main(String[] args) {

    String name="小花";

    //定义匿名内部类作为参数传递给animalShout方法

    animalShout(new Animal() {

    //实现shout()方法

    public void shout() {

    //jdk8开始,局部内部类、匿名内部类课堂访问非final的局部变量

    System.out.println(name+"喵喵。。。");

    }

    });

    }

    //定义静态方法animalShout(),接收接口类型参数

    public static void animalShout(Animal an) {

    an.shout();//调入传入对象an的shout()方法

    }

    }

    f01e1a7278f28eca547f32c80aa91b17.png

    注意:

    在调用animalShout()方法时,在方法的参数位置上写上new Animal(){},这相当于创建了一个实例对象,并将对象作为参数传给animalShout()方法。在new Animal()后面有一对大括号表示创建的对象为Animal的子类实例,该子类是匿名的

    总结

    到此这篇关于Java匿名内部类的文章就介绍到这了,更多相关Java匿名内部类内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    展开全文
  • android中常用的匿名内部类的写法

    千次阅读 2016-03-20 11:25:12
    /** ... * android中常用的匿名内部类的写法 * */ public class MyNiMing { public static void main(String[] args) { method1(new MyInterface() { @Override public void method2() {
    <span style="font-size:18px;">package com.zhh;
    /**
     * 
     * android中常用的匿名内部类的写法
     *
     */
    public class MyNiMing {
    
    	public static void main(String[] args) {
    		method1(new MyInterface() {
    			@Override
    			public void method2() {
    				
    				System.out.println("我是zhh");
    //				执行结果:我是zhh
    			}
    		});
    		
    
    	}
    /**	
     * 写一个方法,参数传接口对象
     */
    	public static void method1(MyInterface myInterface){
    		myInterface.method2();
    		
    	}
    
    }
    /** 
     * 一个接口
     */
    interface MyInterface{
    	public void method2();
    }
    </span>

    展开全文
  • //java编程之线程,继承Thread类,匿名内部类的写法 public class Test3 { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("当前线程的名字:"+Thr
    package ThreadTest;
    //java编程之线程,继承Thread类,匿名内部类的写法
    public class Test3 {
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            System.out.println("当前线程的名字:"+Thread.currentThread().getName());
    //      匿名内部类的写法
            new Thread(){
                @Override
                public void run() {
                    System.out.println("我是子线程中的run()方法");
                    for(int i = 0;i<4;i++){
                        System.out.println("子线程:i-----------"+i);
                        try {
                            Thread.sleep(1000);
                            System.out.println("******************");
    
                        } catch (InterruptedException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    }
                    System.out.println("子线程运行结束");
                }
            }.start();//要记住去启动线程
    
            for(int i = 0;i<4;i++){
                System.out.println("Main线程i:---------"+i);
                try {
    //              模拟耗时间操作
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }   
            }
            System.out.println("Main have exited");
        }
    }
    
    展开全文
  • //java编程之线程,实现Runnable接口,匿名内部类的写法 public class Test4 { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("当前线程的名字:"+
    package ThreadTest;
    //java编程之线程,实现Runnable接口,匿名内部类的写法
    public class Test4 {
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            System.out.println("当前线程的名字:"+Thread.currentThread().getName());
    //      匿名内部类的写法    
            new Thread(new Runnable(){
                @Override
                public void run() {
                    System.out.println("我是子线程中的run()方法");
                    for(int i = 0;i<4;i++){
                        System.out.println("子线程:i-----------"+i);
                        try {
                            Thread.sleep(1000);
    
    
                        } catch (InterruptedException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    }
                    System.out.println("子线程运行结束");
                }
            }).start();
    
            for(int i = 0;i<4;i++){
                System.out.println("主线程i:---------"+i);
                try {
    //              模拟耗时间操作
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
    
            }
            System.out.println("Main have exited");
        }
    }
    
    /*
     当前线程的名字:main
    主线程i:---------0
    我是子线程中的run()方法
    子线程:i-----------0
    子线程:i-----------1
    主线程i:---------1
    主线程i:---------2
    子线程:i-----------2
    主线程i:---------3
    子线程:i-----------3
    子线程运行结束
    Main have exited
     */
    展开全文
  • interface Person( public void ...以上为简单匿名类的写法 匿名内部类内部类的一种特殊情况,其实是直接在类里面也方法。 转载于:https://www.cnblogs.com/wangyufei123/p/8023350.html
  • 根据map对象"ptime"属性排序 List < Map < String , Object > > sportsLst = ( List < Map < String , Object > > ) dataMap . get ( "sports" ) ; Collections . sort ( sportsLst , new ...
  • 一、内部类定义内部类(nested classes),面向对象程序设计中,可以在一个类的内部定义另一个类。嵌套类分为两种,即静态嵌套类和非静态嵌套类。静态嵌套类使用很少,最重要的是非静态嵌套类,也即是被称作为内部类...
  • //匿名内部类public class TestThread02 { public static void main(String[] args) { // 创建一个线程 Thread t = new Thread() { // 重写线程方法 @Override public void run() { // 遍历线程 ...
  • 匿名内部类写法

    千次阅读 2020-07-29 08:04:38
    偶然见到一种初始化方式,感到十分新奇: //新建一个列表并赋初值A、B、C ...还有其他集合比如HashMap初始化: Map map = new HashMap() {{  put("Name", "Unmi");  put("QQ", "1125535"); }}; 这种方式
  • 一、内部类定义 内部类(nested classes),面向对象程序设计中,可以在一个类的内部定义另一个类。嵌套类分为两种,即静态嵌套类和非静态嵌套类。静态嵌套类使用很少,最重要的是非静态嵌套类,也即是被称作为内部...
  • 匿名内部类的两种场景的写法

    万次阅读 多人点赞 2018-05-17 08:57:25
    使用匿名内部类的目的:因为接口和抽象类都不能实例化对象,使用匿名内部类的方式构造接口、实例化对象(只要是抽象的,不管是抽象类还是接口,都可以通过匿名内部类的方式访问)情况一: 接口、抽象类使用:相当于...
  • Lambda表达式简化Runnable接口的匿名内部类写法。 点进去Lambda接口中去发现,只有一个抽象方法, 并且有@FunctionalInterface(函数式接口注解)。 有了这个注解接口就是函数式接口,这个有且仅有一个...
  • 匿名内部类线程的写法

    千次阅读 2013-01-13 21:52:11
    第一种 new Thread() { public void run() { try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } } ...Thread thread = new T
  • Java Lambda 表达式的一个重要用法是简化某些匿名内部类的写法,因此它可以部分取代匿名内部类的作用。Lambda 表达式与匿名内部类的相同点如下:Lambda 表达式与匿名内部类一样,都可以直接访问 effectively final ...
  • 作用:对匿名内部类的简化。 写法:3种。 (参数) -> 单行语句 (参数) -> { 多行语句 } (参数) -> 表达式 测试代码: public class Test05 { public static void main(String[] args) { // 使用匿名内部...
  • Java匿名内部类的一些写法

    千次阅读 2016-03-25 11:49:14
    1.static final修饰public class InnerClassTest { private final static Map
  • 在很多时候,我们需要在类的内部初始化一个静态的Map或者List,然后保存一下常量值提供给类内部方法使用。我们通常的做法是:首先初始化一个Map的静态变量,然后在静态块添加常量值:private final static Map ...
  • 目标:Lambda表达式简化Runnable接口的匿名内部类写法 @FunctionalInterface函数式接口注解: ​ 注释接口有且仅能有一个抽象方法。 ​ 这个注解是可以使用Lambda简化标志。 public class LambdaDemo { ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 711
精华内容 284
关键字:

匿名内部类的写法