匿名对象的说明与匿名对象作为方法的参数和返回值

匿名对象
概念
创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量。虽然是创建对象的简化写法,但是应用
场景非常有限。
匿名对象 :没有变量名的对象。
格式:
day04类
package demox.demopro;
public class day04 {
    String name;
    public void showName(){
        System.out.println("我叫"+name);
    }
}

day04pro

package demox.demopro;

/*
创建对象的标准格式:
类名称对象名= neww类名称();
匿名对象就是只有右边的对象,没有左边的名字和赋值运算符。new类名称(;

注意事项:匿名对象   只能使用唯一的一次,下次再用不得不在创建一个新对象,
使用建议:如果确定有一个对象只需要使用唯一的一次,就可以用匿名对象
 */

public class day04pro {
    public static void main(String[] args) {
        day04 one = new day04();
        one.name ="高圆圆";
        one.showName();
        System.out.println("********************");


        new day04().name = "赵又廷";
        new day04().showName();
    }
}

 

new 类名(参数列表);
举例:
new Scanner(System.in);
应用场景
1. 创建匿名对象直接调用方法,没有变量名。
new Scanner(System.in).nextInt();
2. 一旦调用两次方法,就是创建了两个对象,造成浪费,请看如下代码。
new Scanner(System.in).nextInt(); 
new Scanner(System.in).nextInt();
小贴士:一个匿名对象,只能使用一次。
3. 匿名对象可以作为方法的参数和返回值
作为参数:
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); 
        }
 }
作为返回值
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);
         }
 }    
package demox.demopro;

import java.util.Scanner;

public class day05 {
    public static void main(String[] args) {
//            //普通使用方式
//        Scanner scanner = new Scanner(System.in);
//        int nextInt = scanner.nextInt();
//            //匿名对象方式
//        int num = new Scanner(System.in).nextInt();
//        System.out.println("输入的是:"+num);
//        使用一般写法
//        Scanner scanner = new Scanner(System.in);
//        methodParam(sc);
//            methodParam(new Scanner(System.in));
        Scanner  sc = methodReturn();
        int nextInt = sc.nextInt();
        System.out.println("输入的是"+nextInt);
    }
    public static void methodParam(Scanner sc){
        int nextInt = sc.nextInt();
        System.out.println("输入的是"+nextInt);
    }
    public static Scanner methodReturn(){
//        Scanner scanner = new Scanner(System.in);
//        return scanner;
        return new Scanner(System.in);
    }
}

 

 
posted @ 2022-06-30 14:04  zj勇敢飞,xx永相随  阅读(93)  评论(0编辑  收藏  举报