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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 宋星 中级黑马   /  2014-1-19 23:21  /  2017 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一位老农带着猫、狗、鱼过河,河边有一条船,每次老农只能带一只动物过河。当老农不和猫狗鱼在一起时,狗会咬猫,猫会吃鱼,当老农和猫狗鱼在一起时,则不会发生这种问题。编程解决猫狗鱼过河问题。
看到这题时,我想到要用面向对象的思想,但是,具体的实现还没想好

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

9 个回复

倒序浏览
农夫带着猫过河,再回来带着狗过河,将猫带回来再带着鱼过河,最后带猫过河,但是我觉得这一切都是农夫的过程而已,不需要真正做到万物皆对象的,个人心中认为对象仅仅是功能的一个封装,将复杂的事物封装成对象,由对象去完成自己需要做到的事,生活中的例子比如做公交调用到了司机对象,司机调用了汽车对象等等

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
第一次 带猫过去
第二次 带狗(鱼)过去 带猫回来
第三次 带鱼(狗)过去
第四次 带猫过去

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
这个可以第一次把猫带过去,第二次把狗带过去,并把猫带回,第三次把鱼带过去,第四次把猫带过去
class Take
{
      void bring()
      {
             System.out.println("带猫过河");
             if(fish>0)//fish>0相当于带鱼过河
             {
                     System.out.println("带回猫");
                     System.out.println("带去狗");
                     System.out.println("带去猫");
              }
              else(dog>0)
              {
                      System.out.println("带回猫");
                     System.out.println("带去鱼");
                     System.out.println("带去猫");
              }
      }
}
class Ways
{
        Public static void main (String []  args)
       {
                Take t=new Take();
                 t.bring();
        }

}

评分

参与人数 1技术分 +1 收起 理由
滔哥 + 1

查看全部评分

回复 使用道具 举报
看了上面大神们的回复都是先带猫,我觉得第一次带狗过去第二次带鱼过去,最后带猫过去也可以啊
回复 使用道具 举报
未来希望 发表于 2014-1-20 10:09
看了上面大神们的回复都是先带猫,我觉得第一次带狗过去第二次带鱼过去,最后带猫过去也可以啊  ...

你带狗过去,猫不是把鱼吃了?
回复 使用道具 举报
这个问题中,猫提供吃鱼的方法,狗提供咬猫的方法,农夫提供带谁过河的方法,船提供过河的方法,通过if进行判断,带猫过河,狗没有提供吃鱼的方法,不能吃鱼,如果带狗过河,猫提供吃鱼的方法,把鱼吃掉,如果带鱼过河,狗提供咬猫的方法,把猫咬死。
回复 使用道具 举报
宋星 中级黑马 2014-1-20 12:36:38
8#
姬运涛 发表于 2014-1-20 08:48
这个可以第一次把猫带过去,第二次把狗带过去,并把猫带回,第三次把鱼带过去,第四次把猫带过去
class Tak ...

哥们,先不说你的思路,你发的代码运行过吗?首先,你没有定义fish和dog的变量,而且,就算定义了也运行失败。。朋友,我这样说并没有批评你的意思,只是帮你指出问题,只有交流才能发现问题,才能共同进步,大家一起努力。
回复 使用道具 举报
先把猫带过去,在把鱼带过去,把猫带过来把狗带过去,最后把猫带过去。
回复 使用道具 举报
佛说 中级黑马 2014-12-14 17:38:02
10#
学习了 ,大神门
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马