一、匿名對象
創建對象時,只有創建對象的語句,卻沒有把對象地址賦值給某個變量。
雖然是創建對象的簡化寫法,但是應用場景非常有限。
匿名對象:沒有變量名的對象。
語法格式:
new 類名(參數列表);
二、應用場景
1、創建匿名對象直接調用方法,沒有變量名
Demo:
new Scanner(System.in);
2、一旦調用兩次方法,就是創建了兩個對象,造成浪費。
Demo:
new Scanner(System.in).nextInt();
new Scanner(System.in).nextInt();
注意:一個匿名對象,只能使用一次。
3、匿名對象可以作為方法的參數和返回值
-
- 作為參數
1 class Test { 2 public static void main(String[] args) { 3 // 普通方式
4 Scanner sc = new Scanner(System.in); 5 input(sc); 6 //匿名對象作為方法接收的參數
7 input(new Scanner(System.in)); 8 } 9 public static void input(Scanner sc){ 10 System.out.println(sc); 11 } 12 }
-
- 作為返回值
1 class Test2 { 2 public static void main(String[] args) { 3 // 普通方式
4 Scanner sc = getScanner(); 5 } 6 public static Scanner getScanner(){ 7 //普通方式 8 //Scanner sc = new Scanner(System.in); 9 //return sc; 10 //匿名對象作為方法返回值
11 return new Scanner(System.in); 12 } 13 }