课堂编程实践
建立接口Fruit,包含eat抽象方法;建立Applel类和Oriange类分别实现Fruit接口;建立Factory类,包含getInstance(String classNamel)方法,该方法接收类名并返回实现Fruit接口的对象实例;构造测试类,测试Factory类的功能。
package At;
interface Fruit{
public void eat();
}
class Apple implements Fruit{
public void eat() {
System.out.println("吃苹果。");
}
}
class Oriange implements Fruit{
public void eat() {
System.out.println("吃橘子。");
}
}
class Factory{
public static Fruit getInstance(String className) {
Fruit f=null;
try {
f=(Fruit)Class.forName(className).getDeclaredConstructor().newInstance();
//获得Class对象---实例化一个类的对象
}catch(Exception e) {
e.printStackTrace();
}
return f;
}
}
public class Test{
public static void main(String[]args) {
Fruit f=Factory.getInstance("At.Apple");//只要传入字符串进入就可以实例化对象
f.eat();
Fruit fa=Factory.getInstance("At.Oriange");
fa.eat();
}
}