java-匿名对象
概念
创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量。虽然是创建对象的简化写法,但是应用
场景非常有限。
1. 创建匿名对象直接调用方法,没有变量名。
new Scanner(System.in).nextInt();
2. 一旦调用两次方法,就是创建了两个对象,造成浪费,请看如下代码。
new Scanner(System.in).nextInt(); new Scanner(System.in).nextInt();
小贴士:一个匿名对象,只能使用一次。
3. 匿名对象可以作为方法的参数和返回值
1.作为参数:
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); } } java.util.Scanner[delimiters=\p{javaWhitespace}+][position=0][match valid=false][need input=false][source closed=false] [skipped=false][group separator=\,][decimal separator=\.][positive prefix=][negative prefix=\Q-\
2.作为返回值
import java.util.Scanner; public 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); */ } }