- 论坛徽章:
- 0
|
做程序员总是会有很多的无可奈何,这是没有办法的事,重要的是你要扛过去.实现扛不了,没关系,请假吧,休息一下吧,来看看
http://danny1000.cublog.cn
,你就会好起来的,如果还是不行,只有最后一招了,炒老板鱿鱼.
1.定义一个接口
public interface Vehicle{
public void start();
public String stop();
}
2.实现这个接口
public class Car implements Vehicle{
private String motorman ;
public Car(){
}
public Car(String motorman){
this.motorman = motorman;
}
public void start(){
System.out.println(motorman+" Car start");
}
public String stop(){
return motorman +" Car stop";
}
}
public class Train implements Vehicle{
private String motorman ;
public Train(){
}
public Train(String motorman){
this.motorman = motorman;
}
public void start(){
System.out.println(motorman+" Train start");
}
public String stop(){
return motorman +" Train stop";
}
}
3.重要是看下面这个main函数
import java.sql.Timestamp;
import java.lang.reflect.Constructor;
public class ReflectStudent {
public static void main(String[] args) throws Exception {
//你可传任何一个实现该接口的实现类名字.如Car.
String className = "Car";
//类对象.
Class clazz = Class.forName(className);
//获得名字为className的构造对象.
Constructor constructor =
clazz.getConstructor(new Class[]{String.class});
//通过构造对象获得名字为className的实例.
Vehicle vehicle = (Vehicle)constructor.newInstance(new Object[]{"Jack"});
vehicle.start();
//回调的方法名.如stop.
String methodName = "stop";
//方法对象, 参数:方法名,这个方法的参数的类对象,如果这个方法没有参数,类对象是空.
Method method = clazz.getMethod(methodName,new Class[]{});
//开始回调.参数:实例,回调方法参数的实例.
String str = (String)method.invoke(vehicle,new Object[]{});
System.out.println("str= "+str);
}
}
4.控制台的结果:
Jack Car start
str= Jack Car stop
如果className = Train,那么结果是Jack,Train start,Jack Train stop
5.看完之后,一定要提出你的宝贵意见.
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/45398/showart_356750.html |
|