Java之匿名对象

Posted wurengen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java之匿名对象相关的知识,希望对你有一定的参考价值。

匿名对象概念

创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量。虽然是创建对象的简化写法,但是应用场景非常有限。匿名对象 :没有变量名的对象。

格式:

  • new 类名(参数列表);

//创建匿名Scanner对象
new Scanner(System.in);

应用场景

1.创建匿名对象直接调用方法,没有变量名。好处是可以简化代码。
//创建匿名Scanner对象,并且调用方法
new Scanner(System.in).nextInt();

2.匿名对象可以作为方法的参数和返回值

  • 作为参数:
package MyCode;

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        // 普通方式
        Scanner sc = new Scanner(System.in);
        input(sc);
        //匿名对象作为方法接收的参数
        input(new Scanner(System.in));
    }

    public static void input(Scanner sc) {
        System.out.println(sc);
    }
}
  • 作为返回值:
package MyCode;

import java.util.Scanner;

class Test2 {
    public static void main(String[] args) {
        // 普通方式
        Scanner sc = getScanner();
    }

    public static Scanner getScanner() {
        //普通方式
        Scanner sc = new Scanner(System.in);
        //return sc; //匿名对象作为方法返回值
        return new Scanner(System.in);
    }
}
        

注意事项匿名对象只能使用唯一的一次,下次再用不得不再创建一个新对象。一旦调用两次方法,就是创建了两个对象,造成浪费。

使用建议:如果确定有一个对象只需要使用唯一的一次,就可以用匿名对象。

 

 

 

以上是关于Java之匿名对象的主要内容,如果未能解决你的问题,请参考以下文章

Java基础学习笔记十 Java基础语法之finalstatic匿名对象内部类

java基础之匿名内部类

Think in java读书笔记之:java匿名内部类的继承和覆盖

Java 重学系列之匿名代码块和静态代码块区别

Java 重学系列之匿名代码块和静态代码块区别

java 匿名对象,内部类,修饰符,代码块