JAVA编程风格建议.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JAVA编程风格建议

JAVA编程风格建议 学会分解问题 学会分解问题,不管你是在面向过程还是面向对象。其实,面向过程和面向对象,对程序员来说没有什么具体的含义。因为,当你真正分解完问题,自然会知道哪部分是面向过程的,哪部分用面向对象来做简单。 举个例子来说明怎么分解问题。而不是在问题一产生的时候,就尝试解决它。 1、在一条街上,有5座房子,喷了5种颜色。 2、每个房里住着不同国籍的人 3、每个人喝不同的饮料,抽不同品牌的香烟,养不同的宠物 问题是:谁养鱼? 提示: 1、英国人住红色房子 2、瑞典人养狗 3、丹麦人喝茶 4、绿色房子在白色房子左面 5、绿色房子主人喝咖啡 6、抽Pall Mall 香烟的人养鸟 7、黄色房子主人抽Dunhill 香烟 8、住在中间房子的人喝牛奶 9、 挪威人住第一间房 10、抽Blends香烟的人住在养猫的人隔壁 11、养马的人住抽Dunhill 香烟的人隔壁 12、抽Blue Master的人喝啤酒 13、德国人抽Prince香烟 14、挪威人住蓝色房子隔壁 15、抽Blends香烟的人有一个喝水的邻居 现在我们考虑如何编程解决这个问题。1穷举法。2人工智能寻道法。 后面的就不是编程的基础技能了,我们这里用穷举法。 穷举法就是我们把所有的可能的情况都考虑过一遍。 看题目。我们知道每个人有不同的房子(第0间,第1间……) 每个人住不同颜色的房子(白,红,绿,黄,蓝)有不同的国籍(英国,瑞典,丹麦,挪威,德国)不同的饮料,不同的香烟,不同的宠物。 而题目中的情况就是把5个人,各种住不同房子,有不同国籍的情况分布一遍。 而检验这个情况是否合理,就是后面的16个条件的检查。 于是我们现在分2步,1产生所有的情况,2检验情况 先补充基础类 /** * 个人情况 */ public class Man { // 为了简化编程这里没有限定访问权限。统统本包内能访问 int position; Color color; Country contry; Drink drink; Cigarette cigarette; Pet pet; } enum Color { WHITE, Red, GREEN, YELLOW, BLUE; } enum Country { ENGLISH, SWEDEN, DENMARK, NORWAY, GERMANY; } enum Drink { TEE, COFFEE, MILK, BEER, WARTER; } enum Cigarette { PALL_MALL, DUNHILL, BLENDS, BLUE_MASTER, PRINCE; } enum Pet { DOG, BIRD, CAT, HORSE, FISH; } /** * 案例 */ public class Case { Man[] men; public Case() { men = new Man[5]; for (int i = 0; i men.length; i++) { men[i]=new Man(); men[i].position = i; } } } 有了基础数据。的定义我们就可以开始做第一步了。列举所有的Case /** * 我们还需要一个主函数完成我们的穷举 */ public class Main { public static void main(String[] args) { goThroughAllCases(); } /** * 检验全部case */ static void goThroughAllCases() { } /** * 结合条件判断是否通过 * @param c * @return */ static boolean checkCase(Case c){ return false; } } 先不急得实现。我们已经把上述的问题分解到如此。 我们需要的只是完成3个方法,一个可以把所有case统统枚举一遍。一个验证这个case是否能通过那16个条件验证。然后再加入一个输出这个case的情况的方法。 输出case情况我们可以列用类本身的toString所以我们只剩下2个问题要考虑。 其中checkCase已经很明显了,如: 英国人住红色房子 那么就是找这个case中英国人是那号房子,找到这个case中红色房子是哪号房子。对比是否相等。 按顺序把16个条件表达完整即可。同时注意。找人所在的房子号,可以写成一个子程序。或者直接把他封装到case类里面 剩下一个比较大问题就是。如何列举出所有Case 按排列组合的理论。

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档