package test0812;
public class Person {
private String name;
private int age;// 创建构造方法,在new时就给属性传值
public Person(){
}
public Person(String name,int age){
this.name = name;
this.age = age;}
@Override
public String toString(){
return this.name +"\t"+ this.age;}
public voideat(){
System.out.println("在吃饭");}
public intjia(int num1,int num2){
return num1+num2;}
public String getName(){
return name;}
public voidsetName(String name){
this.name = name;}
public intgetAge(){
return age;}
public voidsetAge(int age){
this.age = age;}}
package test0812;
import java.lang.reflect.Method;//调用类里边的任何方法给传任何参数,接收任何返回值
public class Test06 {
public voidcreateObj(String className){
try {
Class clazz = Class.forName(className);
Object obj = clazz.newInstance();//调用eat方法
Method methodEat = clazz.getMethod("eat");//获得方法
methodEat.invoke(obj);//调用jia方法
Method methodjia = clazz.getMethod("jia",new Class[]{
int.class,int.class});//传递信息.--有几个参数和参数类型(数组为描述类)
Object result = methodjia.invoke(obj, new Object[]{
10,20});//给参数传值(真正的对象)//Integer result = (Integer)methodjia.invoke(obj, new Object[] {10,20});
System.out.println(result);//(输出返回值Integer类型自动转换为int输出) : 在吃饭 + 30} catch (Exception e){
e.printStackTrace();}}
public staticvoidmain(String[] args){
Test06 t = new Test06();
t.createObj("test0812.Person");}}