黑马程序员---思想是最重要的!!!
来源:互联网 发布:淘宝助理批量上架 编辑:程序博客网 时间:2024/04/30 12:52
---------------------- android培训、java培训、期待与您交流! ------------------------
学习java完全是在关门造车的情况下完成的,看了很多的书《think in java》 、《core java》、《设计模式》等等,这些都是一个前辈开列的书单。
还跟着网易的公开课看了斯坦福大学的《编程方法》,甚至连他的作业也做了很多,虽然代码写的不多,经验基本为零
但是和人吹起来,感觉自己还蛮自信的。就连几天前做的基础测试,也是信心满满。但是看完张孝祥老师的那个交通灯管理系统视频,我彻底hold不住了!!!!
原来自己以为已经掌握了面向对象编程,现在才知道自己根本就是连面向对象的门都没入!!!
再看看自己的基础测试,虽然每道题都回答了,但是连一点面向对象的味道都没有,用的编程思想还是自己大学学c语言时的水平
惭愧啊,惭愧啊!!!
知耻近乎勇,发现不足是进步的前提,以后我要多加思考和练习。下面是我一直琢磨的一个问题,明白了什么是面向对象编程
终于有了思路:问题是这样的,我有时下中国象棋,马能否一次不重复的经过棋盘上所有的点?怎样用计算机编程来实现?
解决思路是:首先创建三个对象,Horse和ChessBoard,一个辅助的对象Point
坐标点的对象Point
马的对象horse
public class Horse{
private Point curPosition;//当前位置
private Point backStep;//上一步位置
private ChessBoard board=new ChessBoard();//持有一个棋盘的对象
//一个方法,跳的方法
public void jump(Point curPosition){
//先问棋盘,还有没有下一步可以跳
if(有下一步可以跳){
curPosition=board.getNextPoint();
System.out.println("向前跳一步");
//把现在位置设为当前位置,刚才的位置设为上一步位置
backStep=curPosition;
//把跳过的位置放入已跳过的集合中
//把当前的位置从可以跳的位置删掉
//继续跳
jump(curPosition);
}else{
棋盘所有点都跳完,退出程序//这里可能有大大的问题,如果没有下一步可跳,并且棋盘没有跳完,怎么办?
//应该回到上一步,再选择一条新路
}
}
棋盘的对象ChessBoard
public class Board{
属性1 棋盘所有点的坐标,是个set
属性2 马已跳过的点的坐标,也是一个set
属性3 马还没有跳过的坐标,是个set
属性4 马下一步可以跳的坐标,是个set
setter和getter方法
方法一:计算马下一步可以跳的坐标,以马的当前坐标为参数
public set canJumpPoints(Point currentPoint){
//计算两个点距离就可以了,因为马走日,如果小方格的边长为一
那么利用勾股定理很容易计算下一步可以跳的点
return set;
}
方法二:给马一个下一步可以跳的点的坐标,从可以跳的坐标中,随机选取一个
public Point getNextStep(参数为下一步可以跳的点的集合){
//用一个随机函数实现
}
}
必须要说明的是:上面说的都是思路,我还没有把问题解决:这里主要是想练习
一下如何用面向对象来思考问题!
顺便说一句,这个问题最大的难处是随后马跳的策略,也就是算法问题,这里就不详细说了!!!
我是新手,欢迎指正
--------------------android培训、java培训、期待与您交流! ----------------------
- 黑马程序员---思想是最重要的!!!
- 人,最重要的是思想
- spring的最重要思想是什么?
- 开心是最重要的
- 成长是最重要的
- 黑马程序员_面向对象的思想
- 黑马程序员_面对对象的思想
- 黑马程序员--面向对象的设计思想
- 程序员最重要的素质
- 程序员最重要的技能
- 黑马程序员-递归思想
- 黑马程序员-反射思想
- 男人最重要的是行动
- 人生最重要的是目标
- 最重要的 是适合你
- 网站最重要的是首页
- 最重要的是保持节奏
- 程序员不死,电脑是程序员思想的继续
- sql 注入防止点滴
- 在AppStore 上的一些推广经验(转载学习)
- 详细介绍Spring事务管理
- “无法从web服务器获取项目文件”解决方案
- 谈谈使用VFW在windows下编程控制摄像头(一)【转360doc】
- 黑马程序员---思想是最重要的!!!
- Spring框架的事务管理应用分析
- 编译型与解释型、动态语言与静态语言、强类型语言与弱类型语言的区别
- 谈谈使用VFW在windows下编程控制摄像头(二)【转360doc】
- Apache2.2.17+PHP5.2.5+MySQL5安装说明配置遇到问题解决笔记
- 经典 SQL 整理
- 13份疯狂的创意简历
- Google前工程经理王忻:如何准备软件工程师的面试
- VFW