A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Jeffery 中级黑马   /  2015-8-26 00:04  /  747 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

编写一个类A,增加一个实力方法showString,用于打印一条字符串,在编写一个类TestA ,作为客户端,用键盘输入一个字符串,改字符 串就是类A的全名,使用反射机制创建该类的对象,并调用该对象中的方法showString。

3 个回复

倒序浏览
本帖最后由 Οo无敌兔子оΟ 于 2015-8-26 21:43 编辑

class Test3 {          /**          * @param args     
     */      
  public static void main(String[] args) {              
   // TODO 自动生成的方法存根           
      //创建一个读取流读取键盘数据              
   BufferedReader fr =    new BufferedReader(new InputStreamReader(System.in));            
    try {                  
      //创建一个变量记录读取的数据                       
  String str = fr.readLine();                 
        //获取对象的class对象并获取构造方法创建对象                  
       Demo d = (Demo)Class.forName(str).getConstructor(String.class).newInstance(str);                    
     //调用方法                 
        d.showString();        
        } catch (IOException e) {                    
     // TODO 自动生成的 catch 块      
                   e.printStackTrace();         
       } catch (InstantiationException e) {         
               // TODO 自动生成的 catch 块               
          e.printStackTrace();           
      } catch (IllegalAccessException e) {            
             // TODO 自动生成的 catch 块           
              e.printStackTrace();         
       } catch (IllegalArgumentException e) {      
                   // TODO 自动生成的 catch 块            
            e.printStackTrace();        
         } catch (InvocationTargetException e) {              
           // TODO 自动生成的 catch 块                 
        e.printStackTrace();         
       } catch (NoSuchMethodException e) {           
              // TODO 自动生成的 catch 块               
         e.printStackTrace();         
       } catch (SecurityException e) {              
           // TODO 自动生成的 catch 块                 
        e.printStackTrace();         
       } catch (ClassNotFoundException e) {            
            // TODO 自动生成的 catch 块              
           e.printStackTrace();           
      }     
    }
  }
class Demo{      
  private String s;   
     //定义一个构造函数   
     public Demo(String s){           
      this.s =s;     
    }        
//定义一个方法      
  public void showString(){         
       System.out.println(s);     
    }
}


输入的全名是  包名.类名



回复 使用道具 举报
Οo无敌兔子оΟ 发表于 2015-8-26 15:54
class Test3 {          /**          * @param args          */         public static void main(String ...

。。。。。。好有耐心
回复 使用道具 举报
星语千寻 来自手机 中级黑马 2015-8-26 17:24:53
板凳
66666。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马