Java基础——匿名对象

概念


  • 匿名对象:没有变量的对象。

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

    • 在创建对象时,只通过new的动作在堆内存开辟空间,却没有把堆内存空间的地址值赋值给栈内存的某个变量用以存储。
  • 格式:

    • new 类名(参数列表);
  • 例如

    • new Scanner(System.in);
  • 应用场景

    1. 创建匿名对象直接调用方法,没有变量名。
      • new Scanner(Systme.in).nextInt();
    2. 一旦调用两次方法,就是创建了两个对象,造成浪费,请看如下代码。
      • new Scanner(System.in).nextInt()
      • new Scanner(System.in).nextInt()
      • 小贴士:一个匿名对象,只能使用一次
    3. 匿名对象可以作为方法的参数和返回值
      1. 作为参数:
package com.zhou.day0821;  
  
import java.util.Scanner;  
  
public class Demo01 {  
    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);  
    }  
}
	2. 作为返回值:
package com.zhou.day0821;  
  
import java.util.Scanner;  
  
public class Demo02 {  
    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);  
    }  
}
posted @ 2022-08-21 16:46  小周和java  阅读(171)  评论(0编辑  收藏  举报