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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 邵震 高级黑马   /  2013-4-12 14:40  /  1358 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 邵震 于 2013-4-12 15:22 编辑
  1. interface Xinren
  2. {
  3.         public void show();
  4. }
  5. class QQqun
  6. {
  7.         public void ren()
  8.         {
  9.                 System.out.println("大家好,我是群主。我叫邵震。");
  10.         }
  11.         public void useXinren(Xinren q)
  12.         {
  13.                 if (q!=null)
  14.                 {
  15.                         q.show();
  16.                 }
  17.         }
  18. }
  19. class laoliu implements Xinren
  20. {
  21.         public void show()
  22.         {
  23.                 System.out.println("大家好,我是新来的,我叫刘胜寒");
  24.         }
  25. }
  26. class laoge implements Xinren
  27. {
  28.         public void show()
  29.         {
  30.                 System.out.println("大家好,我是新来的,我叫老葛");
  31.         }
  32. }

  33. class Java0412d2
  34. {
  35.         public static void main(String[] args)
  36.         {
  37.                 QQqun qun =new QQqun();
  38.                 qun.ren();
  39.                 qun.useXinren(null);
  40.                 laoliu liu =new laoliu();
  41.                 liu.show();
  42.                 laoge ge =new laoge();
  43.                 ge.show();
  44.         }
  45. }
复制代码
代码附上了 没问题 可以用

这个是模拟一个QQ群 进来的人都要自我介绍一下

新来的人用接口实现

现在有两个问题
第一每次群里来新人总要打一遍从19行到25行的代码 麻烦 应该可以用继承 但是接口和继承怎么一起用啊

第二现在只能打印出" "之间的内容 假如把输出语句的"大家好,我是新来的,我叫老葛"改成"大家好,我是新来的,我叫"+name+"。"
该怎么改啊  

知道大概怎么写但是总是写不出来

我不要另一篇完整的代码,只求高手在我的基础上帮我改一下 加一下注释 谢谢

9 个回复

倒序浏览
17个人看了没一个回复的。。。。。这个题没那么难吧
回复 使用道具 举报
  1. abstract class  Xinren
  2. {
  3.                 String name;
  4.         public abstract void show();
  5. }
  6. class QQqun
  7. {
  8.         public void ren()
  9.         {
  10.                 System.out.println("大家好,我是群主。我叫邵震。");
  11.         }
  12.         public void useXinren(Xinren q)
  13.         {
  14.                 if (q!=null)
  15.                 {
  16.                         q.show();
  17.                 }
  18.         }
  19. }
  20. class laoliu extends Xinren
  21. {
  22.        laoliu(String name)
  23.        {
  24.                super.name = name;
  25.        }
  26.        public  void show()
  27.        {
  28.                System.out.println("大家好,我是新来的,我叫"+super.name);
  29.        }
  30. }


  31. class Main
  32. {
  33.         public static void main(String[] args)
  34.         {
  35.                 QQqun qun =new QQqun();
  36.                 qun.ren();
  37.                 qun.useXinren(null);              
  38.                 new laoliu("刘胜寒").show();
  39.                 new laoliu("老葛").show();  
  40.         }
  41. }
复制代码
冒着被老师抓的危险给你回帖....
回复 使用道具 举报
刘胜寒 发表于 2013-4-12 15:02
冒着被老师抓的危险给你回帖....

爱卿精神可嘉 朕心领了 赐你小清新一枚 自己去追把
回复 使用道具 举报
  1. abstract class  Xinren
  2. {       
  3.            public static void show()
  4.            {
  5.                    System.out.println("没人陪我玩....我去找嘟嘟玩去...你们这群骚年");
  6.            }
  7. }
  8. class QQqun
  9. {
  10.         public void ren()
  11.         {
  12.                 System.out.println("大家好,我是群主。我叫邵震。");
  13.         }
  14.         public void useXinren(Xinren q)
  15.         {      
  16.                 if(q==null)
  17.                         Xinren.show();
  18.                 else
  19.             q.show();        
  20.         }
  21. }
  22. class laoliu extends Xinren
  23. {
  24.           
  25.        public  void show(String name)
  26.        {
  27.                System.out.println("大家好,我是新来的,我叫"+name);
  28.        }
  29. }


  30. class Main
  31. {
  32.         public static void main(String[] args)
  33.         {
  34.                 QQqun qun =new QQqun();
  35.                 qun.ren();
  36.                 qun.useXinren(null);              
  37.                 new laoliu().show("刘胜寒");
  38.                 new laoliu().show("老葛");  
  39.         }
  40. }
复制代码
回复 使用道具 举报
邵震 发表于 2013-4-12 15:06
爱卿精神可嘉 朕心领了 赐你小清新一枚 自己去追把

妹妹的....
小清新说他喜欢和她一起奋斗的男生好难过...:'(
回复 使用道具 举报
邵震 高级黑马 2013-4-12 15:11:05
7#
刘胜寒 发表于 2013-4-12 15:08
妹妹的....
小清新说他喜欢和她一起奋斗的男生好难过...

那你就去和她一起粪兜呗  本来你也是打算回去找她的
回复 使用道具 举报
邵震 发表于 2013-4-12 15:11
那你就去和她一起粪兜呗  本来你也是打算回去找她的

第一个是给抽象类添加了一个属性。。因为每个人都有一个姓名吗..

第二个代码是重载了了show()...
因为xinren类的里面的show定义成static的 了。。、
这两个都不科学吗???
回复 使用道具 举报
  1. interface Xinren
  2. {
  3.         public void show(String name);
  4. }
  5. class QQqun
  6. {
  7.         public void ren()
  8.         {
  9.                 System.out.println("大家好,我是群主。我叫邵震。");
  10.         }
  11. }
  12. class Ren implements Xinren{
  13.         private String name;

  14.         public void setName(String name) {
  15.                 this.name = name;
  16.         }
  17.         public String getName() {
  18.                 return name;
  19.         }
  20.         public void show(String name){//传入新人的名字
  21.             System.out.println("大家好,我叫"+name);
  22.     }
  23. }
  24. class Java0412d2
  25. {
  26.         public static void main(String[] args)
  27.         {
  28.                 QQqun qun =new QQqun();
  29.                 qun.ren();
  30.                 Ren ren1 = new Ren();
  31.                 ren1.setName("lisi");
  32.                 ren1.show(ren1.getName());
  33.         }
  34. }
复制代码
不知道符不符合你的要求,你看看吧,我把ren抽象出来了,有新人进入时,就实例化一个人,然后设置上这个人的名字,最后每个人调用自己的show方法
还有一种:
  1. class QQqun {
  2.         public void ren() {
  3.                 System.out.println("大家好,我是群主。我叫邵震。");
  4.         }
  5. }

  6. class Ren{
  7.         public Ren(String name){
  8.             System.out.println("大家好,我叫"+name);
  9.         }
  10. }

  11. class Java0412d2 {
  12.         public static void main(String[] args) {
  13.                 QQqun qun = new QQqun();
  14.                 qun.ren();
  15.                 Ren ren1 = new Ren("lisi");
  16.         }
  17. }
复制代码
就是在ren类中写一个构造函数,在实例化一个人时,给该函数传入一个人的名字,一旦一个人实例化,就会自动打印信息
回复 使用道具 举报
我试着改了一下,不知道对不对,你看看


import java.util.Scanner;



class Xinren{
       
        String name = new Scanner(System.in).next();
       
        public void show(String name){
                this.name = name;
                System.out.println("大家好,我是新来的,我叫 " + name);
        }
}

class QQun {
        public void ren() {
                System.out.println("大家好,我是群主。我叫邵震。\n\n新人请输入姓名...\n");
        }

        public void useXinren(Xinren xin) {
                if (xin.name != null) {
                        xin.show(xin.name);
                }
        }
}


public class Java0412d2 {
       
        public static void main(String[] args) {
               
                boolean flag = true; //判断是否是新人
                Xinren xin;
               
                QQun qun = new QQun();
                qun.ren();
               
                if (flag) {
                        xin = new Xinren();
                        qun.useXinren(xin);
                        flag = false;
                }
               
        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马