题意整理

  • 输入一个类名。
  • 输出该类实例化后对象的字符串形式。

方法一(调用系统函数)

1.解题思路

  • 通过实例化后的对象获取类。
  • 然后再通过类获取类名。

图解展示: alt

2.代码实现

import java.util.Scanner;

public class Main {

    public static void main(String[] args) throws Exception {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            String className = scanner.next();
            // print就是需要你定义的方法
            print(Class.forName(className).newInstance());
        }
    }

    //先通过实例化的对象获取类,然后再获取类名
    public static void print(Object object){
        System.out.println(object.getClass().getName());
    }

}


class First {
    public String toString() {
        return "First";
    }
}

class Second {
    public String toString() {
        return "Second";
    }
}

class Third {
    public String toString() {
        return "Third";
    }
}

3.复杂度分析

  • 时间复杂度:只需调用一次系统函数,所以时间复杂度为O(1)O(1)
  • 空间复杂度:不需要额外的空间,所以空间复杂度为O(1)O(1)