一个Hello World的动态输出
大概要求;一个演讲会Lecture,请多个不同语言演讲者speaker演讲(输出Hello world),动态生成演讲者speaker,

解决方案 »

  1.   

    或许你说明你这样的目的会更容易让人理解。你想验证什么?
    public Class A
    {
    public void speak()
    {
    System.out.println("HelloWordA");
    B b = new B();
    b.speak();
    }
    }public Class B
    {
    public void speak()
    {
    System.out.println("HelloWordB");
    }
    }
      

  2.   

    import java.util.List;public class Lecture
    {
    private List<String> users; //演讲人列表

    public static void main(String[] args)
    {
    Lecture lecture=new Lecture();
    lecture.initUser();
    lecture.speak(lecture.randomUser());

    }
    /**
     * 根据演讲者名称生成演讲内容
     * @param name 演讲者名称
     */
    public void speak(String name)
    {
    System.out.println(name+" say: "+"Hello world");
    }

    /**
     * 获得随机的一个演讲者
     * @return 随机的演讲者名称
     */
    public String randomUser()
    {
    int num=((int)(Math.random()*1000))%users.size();
    return users.get(num);
    }

    /**
     * 初始化演讲者列表
     *
     */
    public void initUser()
    {
    users=new ArrayList<String>();
    users.add("a");
    users.add("b");
    users.add("c");
    users.add("d");
    users.add("e");
    }}
      

  3.   


    接口:package ISyaHi;public interface ISayHi {
           public String SayHi(String name);
    }实现类:package SayHiImp;import ISyaHi.ISayHi;public class SayHiEnImp implements ISayHi {
     
           public SayHiEnImp()
           {
           }       public String SayHi(String name) {
           return "Hello! "+name.toUpperCase()+" This JAVA Word!";
    }package SayHiImp;import ISyaHi.ISayHi;public class SayHiZhImp implements ISayHi {
     
           public SayHiZhImp()
           {
           }
     
           public String SayHi(String name) {
                  return "你好! "+name.toUpperCase()+" 这是JAVA世界!";
           }}控制类:package SayHiController;import ISyaHi.ISayHi;
    import XMLPrass.XmlPrass;public class Controller {
           private ISayHi iSatHi;
           private XmlPrass xmlPrass;
     
           public Controller ()
          {
               try{
                      xmlPrass=XmlPrass.newInstance();
                      if(xmlPrass.sax().equals("ZH")){
                              iSatHi=(ISayHi)Class.forName("SayHiImp.SayHiZhImp").newInstance();
                      }else{
                              iSatHi=(ISayHi)Class.forName("SayHiImp.SayHiEnImp").newInstance();
                      } 
                      }catch(Exception e){
                              System.out.println(e);
                      }
           }
     
           public ISayHi getSayHi()
           {
                      return iSatHi;
           }
    }XML解析类:package XMLPrass;
    import java.io.File;import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.NodeList;public class XmlPrass {
              private static XmlPrass xmlPrass=null;
     
              private XmlPrass(){}
     
              public String sax() {
                      String result="";
                      try{
                            DocumentBuilderFactory builderFactory=DocumentBuilderFactory.newInstance();
                            DocumentBuilder builder=builderFactory.newDocumentBuilder();
                            Document document=builder.parse(new File("src/MyXml.xml"));
                            Element element=document.getDocumentElement();
                            NodeList nl=element.getElementsByTagName("say-configuation");
                            result=nl.item(0).getAttributes().getNamedItem("src").getTextContent();
                            }catch(Exception e){
                                   System.out.println(e);
                            }
                       return result;
              }
     
              public static XmlPrass newInstance(){
                          if(xmlPrass==null){
                                  xmlPrass=new XmlPrass();
                          }
                          return xmlPrass;
              }
    }测试类:package SayHiMain;import SayHiController.Controller;public class SayHi {         /**
              * @param args
              */
             public static void main(String[] args) {
             Controller controller=new Controller();
             System.out.println(controller.getSayHi().SayHi("jack"));
             }
    }MyXml.xml<?xml version="1.0" encoding="UTF-8"?>
    <say>
    <say-configuation src="EN"/>
    <say-class name="ZH" class="SayHiImp.SayHiZhImp" />
    <say-class name="EN" class="SayHiImp.SayHiEnImp" />
    </say>
      

  4.   

    public class Lecture extends speaker
    {
    public static void main(String[] args) {
    Speaker s = new Speaker("Lao Wang");
    s.speak();
    }

    }
    yk
    class Speaker 
    {
    private String name;
    Speaker(String name) {
    this.name = name;
    }
    void speak() {
    System.out.println("Hello World");
    }
    }