- package com.itheima_01;
- import java.lang.reflect.Constructor;
- import java.lang.reflect.InvocationTargetException;
- import java.lang.reflect.Method;
- import java.util.Scanner;
- /**
- *
- * 2,编写一个类A,增加一个实力方法showString,用于打印一条字符串,在编写一个类TestA ,
- * 作为客户端,用键盘输入一个字符串,改字符串就是类A的全名,使用反射机制创建该类的对象, 并调用该对象中的方法showString
- *
- * 思路:
- * 1.创建类A, 2,创建TestA方法 3.反射创建类A的字节码对象。 4.调用类A的whowString方法,并且返回打印值。
- *
- *
- * @author perry
- *
- */
- public class TestA {
-
- public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, SecurityException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
- // 封装键盘输入
- Scanner sc = new Scanner(System.in);
- String s = sc.nextLine();
- // 创建类A的字节码对象
- Class c = Class.forName("com.itheima_01.A");
- //调用构造函数,创建Class A对象。
- Constructor con = c.getConstructor();
- Object obj = con.newInstance();
-
-
- // 调用其中的showString文件。
- Method mod = c.getMethod("showString",String.class);
- mod.invoke(obj, s);
-
- }
- }
- // 创建类A
- class A {
-
- public A(){};
- // 添加类A的showString方法
- public void showString(String s) {
- System.out.println("class"+" "+s);
-
- }
-
- }
-
复制代码
编写一个类A,增加一个实力方法showString,用于打印一条字符串,在编写一个类TestA ,
* 作为客户端,用键盘输入一个字符串,改字符串就是类A的全名,使用反射机制创建该类的对象, 并调用该对象中的方法showString
|
|