<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_水至清则无鱼、宁静而致远！</title><subtitle type="text">技术、经验、学习共同打造.Net网络新生活！</subtitle><id>http://feed.cnblogs.com/blog/u/18239/rss</id><updated>2010-08-18T01:42:18Z</updated><author><name>小鱼儿</name><uri>http://www.cnblogs.com/jiayong/</uri></author><generator>CNBlogs BlogServer</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jiayong/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/18239/rss"/><entry><id>http://www.cnblogs.com/jiayong/articles/1802056.html</id><title type="text">优秀程序员的四十五个习惯</title><summary type="text">优秀来自好的习惯。怎样成为优秀的开发人员？下面从《程序员修炼之道》从书中摘出的45个习惯标题，值得一看且强烈推荐大家将这些打印出来，贴在自己的办公桌旁边的墙上，学习实践。态度篇1. 做实事不要抱怨，发牢骚，指责他人，找出问题所在，想办法解决。对问题和错误，要勇于承担。2. 欲速则不达用小聪明、权宜之计解决问题，求快而不顾代码质量，会给项目留下要命的死角。3. 对事不对人就事论事，明智、真诚、虚心地...</summary><published>2010-08-18T01:42:00Z</published><updated>2010-08-18T01:42:00Z</updated><author><name>小鱼儿</name><uri>http://www.cnblogs.com/jiayong/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jiayong/articles/1802056.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jiayong/articles/1802056.html"/><content type="html">&lt;p&gt;优秀来自好的习惯。怎样成为优秀的开发人员？下面从《程序员修炼之道》从书中摘出的45个习惯标题，值得一看且强烈推荐大家将这些打印出来，贴在自己的办公桌旁边的墙上，学习实践。&lt;/p&gt;&#xD;
&lt;p&gt;态度篇&lt;/p&gt;&#xD;
&lt;p&gt;1. 做实事&lt;/p&gt;&#xD;
&lt;p&gt;不要抱怨，发牢骚，指责他人，找出问题所在，想办法解决。对问题和错误，要勇于承担。&lt;/p&gt;&#xD;
&lt;p&gt;2. 欲速则不达&lt;/p&gt;&#xD;
&lt;p&gt;用小聪明、权宜之计解决问题，求快而不顾代码质量，会给项目留下要命的死角。&lt;/p&gt;&#xD;
&lt;p&gt;3. 对事不对人&lt;/p&gt;&#xD;
&lt;p&gt;就事论事，明智、真诚、虚心地讨论问题，提出创新方案。&lt;/p&gt;&#xD;
&lt;p&gt;4. 排除万难，奋勇前进&lt;/p&gt;&#xD;
&lt;p&gt;勇气往往是克服困难的唯一方法。&lt;/p&gt;&#xD;
&lt;p&gt;学习篇&lt;/p&gt;&#xD;
&lt;p&gt;5. 跟踪变化&lt;/p&gt;&#xD;
&lt;p&gt;新技术层出不穷并不可怕。坚持学习新技术，读书，读技术杂志，参加技术活动，与人交流。要多理解新词背后的所以然，把握技术大趋势，将新技术用于产 品开发要谨慎。&lt;/p&gt;&#xD;
&lt;p&gt;6. 对团队投资&lt;/p&gt;&#xD;
&lt;p&gt;打造学习型团队，不断提高兄弟们的平均水平。&lt;/p&gt;&#xD;
&lt;p&gt;7. 懂得丢弃&lt;/p&gt;&#xD;
&lt;p&gt;老的套路和技术，该丢，就得丢。不要固步自封。&lt;/p&gt;&#xD;
&lt;p&gt;8. 打破砂锅问到底&lt;/p&gt;&#xD;
&lt;p&gt;不断追问，真正搞懂问题的本质。为什么？应该成为你的口头禅。&lt;/p&gt;&#xD;
&lt;p&gt;9. 把握开发节奏&lt;/p&gt;&#xD;
&lt;p&gt;控制好时间，养成好习惯，不要加班。&lt;/p&gt;&#xD;
&lt;p&gt;开发流程篇&lt;/p&gt;&#xD;
&lt;p&gt;10. 让客户做决定&lt;/p&gt;&#xD;
&lt;p&gt;让用户在现场，倾听他们的声音，对业务最重要的决策应该让他们说了算。&lt;/p&gt;&#xD;
&lt;p&gt;11. 让设计指导而不是操纵开发&lt;/p&gt;&#xD;
&lt;p&gt;设计是前进的地图，它指引的是方向，而不是目的本身。设计的详略程度应该适当。&lt;/p&gt;&#xD;
&lt;p&gt;12. 合理地使用技术&lt;/p&gt;&#xD;
&lt;p&gt;根据需要而不是其他因素选择技术。对各种技术方案进行严格地追问，真诚面对各种问题。&lt;/p&gt;&#xD;
&lt;p&gt;13. 让应用随时都可以发布&lt;/p&gt;&#xD;
&lt;p&gt;通过善用持续集成和版本管理，你应该随时都能够编译、运行甚至部署应用。&lt;/p&gt;&#xD;
&lt;p&gt;14. 提早集成，频繁集成&lt;/p&gt;&#xD;
&lt;p&gt;集成有风险，要尽早尽量多地集成。&lt;/p&gt;&#xD;
&lt;p&gt;15. 提早实现自动化部署&lt;/p&gt;&#xD;
&lt;p&gt;16. 使用演示获得频繁反馈&lt;/p&gt;&#xD;
&lt;p&gt;17. 使用短迭代，增量发布&lt;/p&gt;&#xD;
&lt;p&gt;18. 固定价格就意味着背叛承诺&lt;/p&gt;&#xD;
&lt;p&gt;估算应该基于实际的工作不断变化。&lt;/p&gt;&#xD;
&lt;p&gt;用户篇&lt;/p&gt;&#xD;
&lt;p&gt;19. 守护天使&lt;/p&gt;&#xD;
&lt;p&gt;自动化单元测试是你的守护天使。&lt;/p&gt;&#xD;
&lt;p&gt;20. 先用它再实现它&lt;/p&gt;&#xD;
&lt;p&gt;测试驱动开发其实是一种设计工具。&lt;/p&gt;&#xD;
&lt;p&gt;21. 不同环境，就有不同问题&lt;/p&gt;&#xD;
&lt;p&gt;要重视多平台问题。&lt;/p&gt;&#xD;
&lt;p&gt;22. 自动验收测试&lt;/p&gt;&#xD;
&lt;p&gt;23. 度量真实的进度&lt;/p&gt;&#xD;
&lt;p&gt;在工作量估算上，不要自欺欺人。&lt;/p&gt;&#xD;
&lt;p&gt;24. 倾听用户的声音&lt;/p&gt;&#xD;
&lt;p&gt;每一声抱怨都隐藏着宝贵的真理。&lt;/p&gt;&#xD;
&lt;p&gt;编程篇&lt;/p&gt;&#xD;
&lt;p&gt;25. 代码要清晰地表达意图&lt;/p&gt;&#xD;
&lt;p&gt;代码是给人读的，不要耍小聪明。&lt;/p&gt;&#xD;
&lt;p&gt;26. 用代码沟通&lt;/p&gt;&#xD;
&lt;p&gt;注释的艺术。&lt;/p&gt;&#xD;
&lt;p&gt;27. 动态地进行取舍&lt;/p&gt;&#xD;
&lt;p&gt;记住，没有最佳解决方案。各种目标不可能面面俱到，关注对用户重要的需求。&lt;/p&gt;&#xD;
&lt;p&gt;28. 增量式编程&lt;/p&gt;&#xD;
&lt;p&gt;写一点代码就构建、测试、重构、休息。让代码干净利落。&lt;/p&gt;&#xD;
&lt;p&gt;29. 尽量简单&lt;/p&gt;&#xD;
&lt;p&gt;宁简勿繁。如果没有充足的理由，就不要使用什么模式、原则和特别的技术。&lt;/p&gt;&#xD;
&lt;p&gt;30. 编写内聚的代码&lt;/p&gt;&#xD;
&lt;p&gt;类和组件应该足够小，任务单一。&lt;/p&gt;&#xD;
&lt;p&gt;31. 告知，不要询问&lt;/p&gt;&#xD;
&lt;p&gt;多用消息传递，少用函数调用。&lt;/p&gt;&#xD;
&lt;p&gt;32. 根据契约进行替换&lt;/p&gt;&#xD;
&lt;p&gt;委托往往优于继承。&lt;/p&gt;&#xD;
&lt;p&gt;调试篇&lt;/p&gt;&#xD;
&lt;p&gt;33. 记录问题解决日志&lt;/p&gt;&#xD;
&lt;p&gt;不要在同一地方摔倒两次。错误是最宝贵的财富。&lt;/p&gt;&#xD;
&lt;p&gt;34. 警告就是错误&lt;/p&gt;&#xD;
&lt;p&gt;忽视编译器的警告可能铸成大错。&lt;/p&gt;&#xD;
&lt;p&gt;35. 对问题各个击破&lt;/p&gt;&#xD;
&lt;p&gt;分而治之是计算机科学中最重要的思想之一。但是，要从设计和原型阶段就考虑各部分应该能够很好地分离。&lt;/p&gt;&#xD;
&lt;p&gt;36. 报告所有的异常&lt;/p&gt;&#xD;
&lt;p&gt;37. 提供有用的错误信息&lt;/p&gt;&#xD;
&lt;p&gt;稍微多花一点心思，出错的时候，将给你带来极大便利。&lt;/p&gt;&#xD;
&lt;p&gt;团队协作篇&lt;/p&gt;&#xD;
&lt;p&gt;38. 定期安排会面时间&lt;/p&gt;&#xD;
&lt;p&gt;常开会，开短会。&lt;/p&gt;&#xD;
&lt;p&gt;39. 架构师必须写代码&lt;/p&gt;&#xD;
&lt;p&gt;不写代码的架构师不是好架构师。好的设计都来自实际编程。编程可以带来深入的理解。&lt;/p&gt;&#xD;
&lt;p&gt;40. 实行代码集体所有制&lt;/p&gt;&#xD;
&lt;p&gt;让开发人员在系统不同区域中不同的模块和任务之间轮岗。&lt;/p&gt;&#xD;
&lt;p&gt;41. 成为指导者&lt;/p&gt;&#xD;
&lt;p&gt;教学相长。分享能提高团队的总体能力。&lt;/p&gt;&#xD;
&lt;p&gt;42. 让大家自己想办法&lt;/p&gt;&#xD;
&lt;p&gt;指引方向，而不是直接提供解决方案。让每个人都有机会在干中学习。&lt;/p&gt;&#xD;
&lt;p&gt;43. 准备好后再共享代码&lt;/p&gt;&#xD;
&lt;p&gt;不要提交无法编译或者没有通过单元测试的代码！&lt;/p&gt;&#xD;
&lt;p&gt;44. 做代码复查&lt;/p&gt;&#xD;
&lt;p&gt;复查对提高代码质量、减少错误极为重要。&lt;/p&gt;&#xD;
&lt;p&gt;45. 及时通报进展与问题&lt;/p&gt;&#xD;
&lt;p&gt;主动通报，不要让别人来问你。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/jiayong/aggbug/1802056.html?type=2" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jiayong/articles/1802056.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jiayong/archive/2010/05/28/1746665.html</id><title type="text">毕业五年后同学之间的差距</title><summary type="text">正如"打工皇帝"唐骏说："我觉得有两种人不要跟别人争利益和价值回报。第一种人就是刚刚进入企业的人，头5年千万不要说你能不能多给我一点儿工资，最重要的是能在企业里学到什么，对发展是不是有利……" 　　人总是从平坦中获得的教益少，从磨难中获得的教益多；从平坦中获得的教益浅，从磨难中获得的教益深。一个人在年轻时经历磨难，如能正确视之，冲出黑暗，那就是一个值得敬慕的人。最要紧的是先练好内功，毕业后这5年就是练内功的最佳时期，练好内功，才有可能在未来攀得更高。　　出路在哪里？出路在于思路！　　其实，没有钱、没有经验、没有阅历、没有社会关系，这些都不可怕。没有钱，可以通过辛勤劳动去赚；没有经验，可以通过实践操作去总结；没有阅历，可以一步一步去积累；没有社会关系，可以一点一点去编织。但是，没有梦想、没有思路才是最可怕的，才让人感到恐惧，很想逃避!　　人必须有一个正确的方向。　　无论你多么意气风发，无论你是多么足智多谋，无论你花费了多大的心血，如果没有一个明确的方向，就会过得很茫然，渐渐就丧失了斗志，忘却了最初的梦想，就会走上弯路甚至不归路，枉费了自己的聪明才智，误了自</summary><published>2010-05-28T13:43:00Z</published><updated>2010-05-28T13:43:00Z</updated><author><name>小鱼儿</name><uri>http://www.cnblogs.com/jiayong/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jiayong/archive/2010/05/28/1746665.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jiayong/archive/2010/05/28/1746665.html"/><content type="html">&lt;p&gt;正如"打工皇帝"唐骏说："我觉得有两种人不要跟别人争利益和价值回报。第一种人就是刚刚进入企业的人，头5年千万不要说你能不能多给我一点儿工资，最重要的是能在企业里学到什么，对发展是不是有利&amp;hellip;&amp;hellip;" &lt;/p&gt;&#xD;
&lt;p&gt;人总是从平坦中获得的教益少，从磨难中获得的教益多；从平坦中获得的教益浅，从磨难中获得的教益深。一个人在年轻时经历磨难，如能正确视之，冲出黑暗，那就是一个值得敬慕的人。最要紧的是先练好内功，毕业后这5年就是练内功的最佳时期，练好内功，才有可能在未来攀得更高。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;　出路在哪里？出路在于思路！&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;其实，没有钱、没有经验、没有阅历、没有社会关系，这些都不可怕。没有钱，可以通过辛勤劳动去赚；没有经验，可以通过实践操作去总结；没有阅历，可以一步一步去积累；没有社会关系，可以一点一点去编织。但是，没有梦想、没有思路才是最可怕的，才让人感到恐惧，很想逃避!&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;　人必须有一个正确的方向。&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;无论你多么意气风发，无论你是多么足智多谋，无论你花费了多大的心血，如果没有一个明确的方向，就会过得很茫然，渐渐就丧失了斗志，忘却了最初的梦想，就会走上弯路甚至不归路，枉费了自己的聪明才智，误了自己的青春年华。&lt;/p&gt;&#xD;
&lt;p&gt;荷马史诗《奥德赛》中有一句至理名言："没有比漫无目的地徘徊更令人无法忍受的了。"毕业后这5年里的迷茫，会造成10年后的恐慌，20年后的挣扎，甚至一辈子的平庸。如果不能在毕业这5年尽快冲出困惑、走出迷雾，我们实在是无颜面对10年后、20年后的自己。毕业这5年里，我们既有很多的不确定，也有很多的可能性。&lt;/p&gt;&#xD;
&lt;p&gt;毕业这5年里，我们既有很多的待定，也有很多的决定。&lt;/p&gt;&#xD;
&lt;p&gt;迷茫与困惑谁都会经历，恐惧与逃避谁都曾经有过，但不要把迷茫与困惑当作可以自我放弃、甘于平庸的借口，更不要成为自怨自艾、祭奠失意的苦酒。生命需要自己去承担，命运更需要自己去把握。在毕业这5年里，越早找到方向，越早走出困惑，就越容易在人生道路上取得成就、创造精彩。无头苍蝇找不到方向，才会四处碰壁；一个人找不到出路，才会迷茫、恐惧。&lt;/p&gt;&#xD;
&lt;p&gt;生活中，面对困境，我们常常会有走投无路的感觉。不要气馁，坚持下去，要相信年轻的人生没有绝路，困境在前方，希望在拐角。只要我们有了正确的思路，就一定能少走弯路，找到出路！&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;成功的人不是赢在起点，而是赢在转折点。&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;不少刚刚毕业的年轻人，总是奢望马上就能找到自己理想中的工作。然而，很多好工作是无法等来的，你必须选择一份工作作为历练。职业旅程中的第一份工作，无疑是踏入社会这所大学的起点。也许你找了一份差强人意的工作，那么从这里出发，好好地沉淀自己，从这份工作中汲取到有价值的营养，厚积薄发。千里之行，始于足下，只要出发，就有希望到达终点。&lt;/p&gt;&#xD;
&lt;p&gt;起点可以相同，但是选择了不同的拐点，终点就会大大不同！&lt;/p&gt;&#xD;
&lt;p&gt;毕业这几年，我们的生活、感情、职业等都存在很多不确定的因素，未来也充满了各种可能。这个时候，必须学会选择，懂得放弃，给自己一个明确的定位，使自己稳定下来。如果你不主动定位，就会被别人和社会"定型"！&lt;/p&gt;&#xD;
&lt;p&gt;可以这么说：一个人在毕业这5年培养起来的行为习惯，将决定他一生的高度。我们能否成功，在某种程度上取决于自己对自己的评价，这就是定位。你给自己定位是什么，你就是什么。定位能决定人生，定位能改变命运。丑小鸭变成白天鹅，只要一双翅膀；灰姑娘变成美公主，只要一双水晶鞋。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;人的命，三分天注定，七分靠打拼，有梦就"会红"，爱拼才会赢。&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;只要不把自己束缚在心灵的牢笼里，谁也束缚不了你去展翅高飞。&lt;/p&gt;&#xD;
&lt;p&gt;现实情况远非他们所想的那样。于是，当优越感逐渐转为失落感甚至挫败感时，当由坚信自己是一块"金子"到怀疑自己是一粒"沙子"时，愤怒、迷茫、自卑就开始与日俱增。&lt;/p&gt;&#xD;
&lt;p&gt;其实，应该仔细掂量一下自己，你是否真是金子？是真金，手中要有绝活，才能上要有过人之处才行。一句话：真金是要靠实力来证明的，只有先把自己的本领修炼好了，才有资格考虑伯乐的事情&lt;strong&gt;每颗珍珠原本都是一粒沙子，但并不是每一粒沙子都能成为一颗珍珠。&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;想要卓尔不群，就要有鹤立鸡群的资本。忍受不了打击和挫折，承受不住忽视和平淡，就很难达到辉煌。年轻人要想让自己得到重用，取得成功，就必须把自己从一粒沙子变成一颗价值连城的珍珠。&lt;/p&gt;&#xD;
&lt;p&gt;天有下雨与日出，人生高峰与低谷。莫为浮云遮望眼，风物长宜放眼量。&lt;/p&gt;&#xD;
&lt;p&gt;只要拂去阴霾，就能亮出朗朗晴空。如果你在工作上有些不如意，要相信自己不会一直处于人生的低谷期，总有一天能冲破重重云层。告诉自己：我并没有失败，只是暂时没有成功！只要在内心点亮一盏希望之灯，一定能驱散黑暗中的阴霾，迎来光明。&lt;/p&gt;&#xD;
&lt;p&gt;的确，论资历，他们是不折不扣的职场菜鸟，业务涉及不深，人脉一穷二白，在工作中经常碰壁。他们的压力并不一定都像千钧大石，而是像大雨来临前的天色，灰色低沉，明明有空间，却被灰色填满每个缝隙，只能等待大雨倾盆之后的晴空。&lt;/p&gt;&#xD;
&lt;p&gt;"起得比鸡早，睡得比狗晚，干得比驴多，吃得比猪差。"这是很多刚刚毕业的人喜欢用来调侃自己生活状态的话。虽然有点儿夸张，但是，他们中的很多人的确一直都被灰色心情所笼罩--心里永远是多云转阴。记得有位哲人曾说："我们的痛苦不是问题本身带来的，而是我们对这些问题的看法产生的。"换个角度看人生，是一种突破、一种解脱、一种超越、一种高层次的淡泊与宁静，从而获得自由自在的快乐。&lt;/p&gt;&#xD;
&lt;p&gt;一位哲人说："人生就是一连串的抉择，每个人的前途与命运，完全把握在自己手中，只要努力，终会有成。"就业也好，择业也罢，创业亦如此，只要奋发努力，都会成功。你是不是准备把生命的承诺全部都交给别人？&lt;/p&gt;&#xD;
&lt;p&gt;毕业后这5年，是改变自己命运的黄金时期。在最能决定自己命运时，如果还不把握，那你还要等到什么时候呢？我的人生我做主，命运由己不由人。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;不要活在别人的嘴里，不要活在别人的眼里，而是把命运握在自己手里。&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;别说你没有背景，自己就是最大的背景。美国作家杰克&amp;middot;凯鲁亚克说过一句话："我还年轻，我渴望上路。"在人生的旅途中，我们永远都是年轻人，每天都应该满怀渴望。每个人的潜能都是无限的，关键是要发现自己的潜能和正确认识自己的才能，并找到一个能充分发挥潜能的舞台，而不能只为舞台的不合适感到不快。要客观公正地看待自己的能力，结合自己的实际情况和爱好冷静选择，尽可能到最需要自己、最适合自己的地方。&lt;/p&gt;&#xD;
&lt;p&gt;在人力资源管理界，特别流行一个说法，即"骑马，牵牛，赶猪，打狗"理论：人品很好，能力又很强的，是千里马，我们要骑着他；人品很好但能力普通的，是老黄牛，我们要牵着他；人品、能力皆普通的，就是"猪"，我们要赶走他；人品很差能力很强的，那是"狗"，我们要打击他。&lt;/p&gt;&#xD;
&lt;p&gt;我想，刚刚毕业几年的你，一样胸怀大志，一样想成为一匹被人赏识、驰骋沙场的千里马吧？那么，就好好沉淀下来。低就一层不等于低人一等，今日的俯低是为了明天的高就。所谓生命的价值，就是我们的存在对别人有价值。能被人利用是一件好事，无人问津才是真正的悲哀！&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;　能干工作、干好工作是职场生存的基本保障。&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;任何人做工作的前提条件都是他的能力能够胜任这项工作。能干是合格员工最基本的标准，肯干则是一种态度。一个职位有很多人都能胜任，都有干好这份工作的基本能力，然而，能否把工作做得更好一些，就要看是否具有踏实肯干、苦于钻研的工作态度了。&lt;/p&gt;&#xD;
&lt;p&gt;在能干的基础上踏实肯干。&lt;/p&gt;&#xD;
&lt;p&gt;工作中，活干得比别人多，你觉得吃亏；钱拿得比别人少，你觉得吃亏；经常加班加点，你觉得吃亏&amp;hellip;&amp;hellip;其实，没必要这样计较，吃亏不是灾难，不是失败，吃亏也是一种生活哲学。现在吃点儿小亏，为成功铺就道路，也许在未来的某个时刻，你的大福突然就来了。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;能吃亏是做人的一种境界，是处世的一种睿智。&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在工作中并不是多做事或多帮别人干点儿活就是吃亏。如果领导让你加加班、赶赶任务，别以为自己吃了大亏，反而应该感到庆幸，因为领导只叫了你，而没叫其他人，说明他信任你、赏识你。吃亏是一种贡献，你贡献得越多，得到的回报也就越多。乐于加班，就是这样的一种吃亏。&lt;/p&gt;&#xD;
&lt;p&gt;舍得舍得，有舍才有得；学会在适当时吃些亏的人绝对不是弱智，而是大智。&lt;/p&gt;&#xD;
&lt;p&gt;给别人留余地就是给自己留余地，予人方便就是予己方便，善待别人就是善待自己。&lt;/p&gt;&#xD;
&lt;p&gt;傻人有傻福，因为傻人没有心计。和这样的人在一起，身心放松，没有太多警惕，就能相互靠近。傻在很多时候意味着执着和忠贞，也意味着宽厚和诚实，让人不知不觉站到他一边。傻人无意中得到的，比聪明人费尽心机得到的还多。毕业这几年，你的天空中只飘着几片雪花，这样你就满足了吗？成功需要坚持与积累，与其专注于搜集雪花，不如省下力气去滚雪球。巴菲特说："人生就像滚雪球，最重要的是发现很湿的雪和很长的坡。"让自己沉淀下来，学着发现"很湿的雪"，努力寻找"很长的坡"。记住：散落的雪花会很快融化，化为乌有，只有雪球才更实在，才能长久。&lt;/p&gt;&#xD;
&lt;p&gt;在毕业这几年里，你要是能做到比别人多付出一分努力，就意味着比别人多积累一分资本，就比别人多一次成功的机会。&lt;/p&gt;&#xD;
&lt;p&gt;什么是职业化呢？职业化就是工作状态的标准化、规范化、制度化，即在合适的时间、合适的地点用合适的方式说合适的话、做合适的事，使知识、技能、观念、思维、态度、心理等符合职业规范和标准。"在每个行业里，都有很多出色的人才，他们之所以能存在，是因为比别人更努力、更智慧、更成熟。但是，最重要的是，他们比一般人更加职业化！这就是为什么我现在能当你老板的原因。一个人仅仅专业化是不够的，只有职业化的人才能飞在别人前面，让人难以超越！"不要以为我们现在已经生存得很安稳了。对于毕业5年的人来讲，一定要认清即将面临的五大挑战。&lt;/p&gt;&#xD;
&lt;p&gt;一、赡养父母。二、结婚生子。三、升职加薪。四、工作压力。五、生活质量。&lt;/p&gt;&#xD;
&lt;p&gt;有的人为生存而雀跃，目光总是停在身后，三天打鱼两天晒网，有始无终。&lt;/p&gt;&#xD;
&lt;p&gt;有的人为发展而奋斗，目光总是盯在正前方，每天进步一点点，坚持不懈。&lt;/p&gt;&#xD;
&lt;p&gt;毕业这几年，不能没有追求和探索，不能没有理想和目标。人生如逆水行舟，不进则退。甘于现状的生活就是不再前行的船，再也无法追上时代前进的步伐。一定要抓紧每一秒钟的时间来学习，要明白学习不是学生的专利。小聪明的人最得意的是：自己做过什么？大智慧的人最渴望的是：自己还要做什么？&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;小聪明是战术，大智慧是战略；小聪明看到的是芝麻，大智慧看到的是西瓜。&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;在这个世界上，既有大人物，也有小角色，大人物有大人物的活法，小人物有小人物的潇洒，每个人都有自己的生活方式，谁也勉强不了谁。但是，小聪明只能有小成绩和小视野，大智慧才能有大成就和大境界。小企业看老板，中企业看制度，大企业看文化。&lt;/p&gt;&#xD;
&lt;p&gt;小公司与大企业都有生存之道，没有好坏之分，但对一个人不同阶段的影响会不同。&lt;/p&gt;&#xD;
&lt;p&gt;小公司肯定想要发展为大企业，这是一种目标，年轻人也要给自己的职业生涯制定目标。毕业几年的你，是否经常会怯场或者是感到没有底气？居安思危绝对不是危言耸听！此刻打盹，你将做梦；此刻学习，你将圆梦。在竞争激烈的人生战场上，打盹的都是输家！&lt;/p&gt;&#xD;
&lt;p&gt;每个人在年轻的时候似乎都豪情万丈，什么都不怕，可是随着年龄的增长，每天想着房子、工作、养家糊口这些俗事儿，再也没有年轻时那种敢于"上天探星、下海捞月"的勇气了。是我们改变了生活，还是生活改变了我们？我们的思想越来越复杂，因为有了越来越多的舍不得、越来越多的顾虑，我们总是在徘徊、总是在犹豫。毕业开始一两年，生活的重担会压得我们喘不过气来，挫折和障碍堵住四面八方的通口，我们往往在压迫得自己发挥出潜能后，才能杀出重围，找到出路。可是两三年后，身上的重担开始减轻，工作开始一帆风顺，我们就松懈了下来，渐渐忘记了潜在的危险。直到有一天危机突然降临，我们在手足无措中被击败&amp;hellip;&amp;hellip;毕业这几年，仍然处于危险期，一定要有居安思危的意识，好好打拼，这样才能有一个真正的安全人生！&lt;/p&gt;&#xD;
&lt;p&gt;生于忧患，死于安乐。如果你想跨越自己目前的成就，就不能画地自限，而是要勇于接受挑战。对畏畏缩缩的人来说，真正的危险正在于不敢冒险！&lt;/p&gt;&#xD;
&lt;p&gt;年轻人在社会的重压下，适应能力已变得越来越强，只是他们不自觉地习惯被环境推着走。他们不敢冒险，怕给自己带来终身的遗憾，于是告慰自己："我对得起自己、对得起家人，因为我已竭尽全力。"其实，人只有不断挑战和突破才能逐渐成长。长期固守于已有的安全感中，就会像温水里的青蛙一样，最终失去跳跃的本能。&lt;/p&gt;&#xD;
&lt;p&gt;经历了这几年社会生活，你应该明白：这个世界上有富也有贫，有阴也有亮，有丑也有美，到底看到什么，取决于自己是积极还是消极。在年轻时学会勤勉地工作，用一种光明的思维对待生活，那么，只要张开手掌，你就会发现，里面有一片灿烂的人生。&lt;/p&gt;&#xD;
&lt;p&gt;把感恩刻在石头上，深深地感谢别人帮助过你，永远铭记，这是人生应有的一种境界；把仇恨写在沙滩上，淡淡忘掉别人伤害过你，学会宽容，让所有的怨恨随着潮水一去不复返，这也是一种人生境界。&lt;/p&gt;&#xD;
&lt;p&gt;学会倒出水，才能装下更多的水。从毕业那天开始，学会把每天都当成一个新的起点，每一次工作都从零开始。如果你懂得把"归零"当成一种生活的常态，当成一种优秀的延续，当成一种时刻要做的事情，那么，经过短短几年，你就可以完成自己职业生涯的正确规划与全面超越。&lt;/p&gt;&#xD;
&lt;p&gt;在职业起步的短短道路上，想要得到更好、更快、更有益的成长，就必须以归零思维来面对这个世界。不要以大学里的清高来标榜自己，不要觉得自己特别优秀，而是要把自己的姿态放下，把自己的身架放低，让自己沉淀下来，抱着学习的态度去适应环境、接受挑战。放下"身段"才能提高身价，暂时的俯低终会促成未来的高就。&lt;/p&gt;&#xD;
&lt;p&gt;年轻人从校园或者从一个环境进入一个新环境，就要勇于将原来环境里熟悉、习惯、喜欢的东西放下，然后从零开始。我们想在职场上获得成功，首先就要培养适应力。从自然人转化为单位人是融入职场的基本条件。一个人起点低并不可怕，怕的是境界低。越计较自我，便越没有发展前景；相反，越是主动付出，那么他就越会快速发展。很多今天取得一定成就的人，在职业生涯的初期都是从零开始，把自己沉淀再沉淀、倒空再倒空、归零再归零，正因为这样，他们的人生才一路高歌，一路飞扬。&lt;/p&gt;&#xD;
&lt;p&gt;在毕业这几年里，我们要让过去归零，才不会成为职场上那只背着重壳爬行的蜗牛，才能像天空中的鸟儿那样轻盈地飞翔。请好好品味一下杰克&amp;middot;韦尔奇说过的一句话："纠正自己的行为，认清自己，从零开始，你将重新走上职场坦途。"吐故才能纳新，心静才能身凉，有舍才能有得，杯空才能水满，放下才能超越。&lt;/p&gt;&#xD;
&lt;p&gt;&lt;strong&gt;　归零思维五大表现：心中无我，眼中无钱，念中无他，朝中无人，学无止境。&lt;/strong&gt;&lt;/p&gt;&#xD;
&lt;p&gt;年轻人难免带着几分傲气，认为自己无所不能、所向披靡，其实不然，初入职场的新人还是个"婴儿"，正处在从爬到走的成长阶段。在毕业这几年里，一定要让自己逐步培养起学徒思维、海绵思维、空杯思维，具有这样思维的人心灵总是敞开的，能随时接受启示和一切能激发灵感的东西，他们时刻都能感受到成功女神的召唤。 &lt;/p&gt;&lt;img src="http://www.cnblogs.com/jiayong/aggbug/1746665.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jiayong/archive/2010/05/28/1746665.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jiayong/archive/2010/05/21/1740866.html</id><title type="text">产品设计与用户体验之“小便池上的苍蝇”</title><summary type="text">今天看到一篇文章，实在忍不住了，实在很经典。做软件也好，做网站也好，天天喊用户体验、用户体验，到底什么是用户体验。好好看看，都在这个小便池里面呢！</summary><published>2010-05-21T05:53:00Z</published><updated>2010-05-21T05:53:00Z</updated><author><name>小鱼儿</name><uri>http://www.cnblogs.com/jiayong/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jiayong/archive/2010/05/21/1740866.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jiayong/archive/2010/05/21/1740866.html"/><content type="html">&lt;p&gt;今天看到一篇文章，实在忍不住了，实在很经典。&lt;br /&gt;做软件也好，做网站也好，天天喊用户体验、用户体验，到底什么是用户体验。&lt;br /&gt;好好看看，都在这个小便池里面呢！&lt;br /&gt;在阿姆斯特丹，史基浦(Schiphol)机场的小便池下边的瓷砖可以通过操作间的质量检查，这一点谁也不会注意。但是所有人都会发现每个小便池里都有一只苍蝇。在男士的洗手间，每个小便池里，都印着一个苍蝇的图案。它在排水口附近，偏左一点地方。设计者的意图在于，有意刺激男士只对准一个方向&amp;rdquo;射击&amp;rdquo;，&amp;rdquo;将苍蝇活活冲死&amp;rdquo;，从而避免尿液四处横流。&lt;br /&gt;&lt;img src="http://pic002.cnblogs.com/img/jiayong/201005/2010052113515737.jpg" /&gt;&lt;br /&gt;仔细看，苍蝇变成了苍蝇形状的黑色轮廓，蚀刻在陶瓷上。这诱使人们瞄准。如果一个男人看到一只苍蝇，他会瞄准。&amp;ldquo;小便池里的苍蝇&amp;rdquo;这项研究发现，由于这只蚀刻苍蝇，飞溅出来的小便减少了80%。它让男人若有所思。算是过程控制的经典案例吧。&lt;br /&gt;&lt;img src="http://pic002.cnblogs.com/img/jiayong/201005/2010052113520743.jpg" /&gt;&lt;br /&gt;抓住心理，引导目标，调整过程，快乐结果...&lt;br /&gt;产品的设计和体验，往往是在不经意间的四两拨千斤。&lt;/p&gt;&lt;img src="http://www.cnblogs.com/jiayong/aggbug/1740866.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jiayong/archive/2010/05/21/1740866.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jiayong/articles/1740862.html</id><title type="text">技术以外的功夫</title><summary type="text">记得看过冯仑的“赚钱以外的功夫”有感而发，写写我们IT人技术以外的功夫。    有时候发现做技术做长了，很多的人的性格都会发生变化，变得内向，变得封闭。有的会发现市场团队的开会，大家都你一言我一语，踊跃发言，争相斗艳。而有的时候程序员开会要么一声不吭，要么就会变成牢骚会，这需求不好，那个做法不对。    我们为何不换个角度看问题或者处理问题呢：我觉得如果这么做可能更好，如果那么做可以避免这样的问题。开放式的摆平心态讨论问题。当然也许这只是一少部分现象，也许并不普遍。因为很多心态开放，积极思考的人多半最后都会走的很好，而那些只会牢骚的人，多年以后仍在别的公司发着同样的牢骚。这就是不同!    我发现一个非常有趣的现象，某些人在工作的时候，许多人都比他技术高经验多，但后来那些技术高的人不见了，而这些人却一路高升。比尔盖茨创业的时候，比他钱多的人也很多，但盖茨今天成了首富。中国许多企业家也是如此。为什么？</summary><published>2010-05-21T05:45:00Z</published><updated>2010-05-21T05:45:00Z</updated><author><name>小鱼儿</name><uri>http://www.cnblogs.com/jiayong/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jiayong/articles/1740862.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jiayong/articles/1740862.html"/><content type="html">&lt;p&gt;记得看过冯仑的&amp;ldquo;赚钱以外的功夫&amp;rdquo;有感而发，写写我们IT人技术以外的功夫。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;有时候发现做技术做长了，很多的人的性格都会发生变化，变得内向，变得封闭。有的会发现市场团队的开会，大家都你一言我一语，踊跃发言，争相斗艳。而有的时候程序员开会要么一声不吭，要么就会变成牢骚会，这需求不好，那个做法不对。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;我们为何不换个角度看问题或者处理问题呢：我觉得如果这么做可能更好，如果那么做可以避免这样的问题。开放式的摆平心态讨论问题。当然也许这只是一少部分现象，也许并不普遍。因为很多心态开放，积极思考的人多半最后都会走的很好，而那些只会牢骚的人，多年以后仍在别的公司发着同样的牢骚。这就是不同!&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;我发现一个非常有趣的现象，某些人在工作的时候，许多人都比他技术高经验多，但后来那些技术高的人不见了，而这些人却一路高升。比尔盖茨创业的时候，比他钱多的人也很多，但盖茨今天成了首富。中国许多企业家也是如此。为什么？&lt;br /&gt;就像你驾驶一辆汽车在高速公路上要并线转弯，既要车不能翻，还要保持速度，这非常难。这时候的问题不在于汽油，而在于司机的技巧，这个技巧就是技术以外的东西。技术以外的能力究竟是什么能力？我讲四种。&lt;br /&gt;&lt;b&gt;一. 摆平心态&lt;br /&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;技术以外的能力之一是做人的能力，特别是做人的心态。我发现凡是真正技术高超的人，反倒都善于把自己的心态放得很平和，在中国文化里这叫谦虚，就是你得尊重别人。凡是刚开始做技术的时候，他们的心态都很重要，就是很谦恭、谦虚、谦卑。我们圈里肯定也有这种人，技术稍微好一些（所谓的好一些就是指在他所在的几个人中好一些）就牛的了不得，对别人不屑理睬，对主管牛气冲天。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;还有的人，一遇到问题，嘴一裂，&amp;ldquo;这没法弄，根本没法实现。&amp;rdquo;&amp;ldquo;那个bug跟我没有关系，是谁谁的问题&amp;rdquo;，&amp;ldquo;人家谁谁拿多少工资，我才这么点&amp;rdquo;&amp;ldquo;人家什么什么公司多么多么好，你瞧咱这破公司哪哪都不好&amp;rdquo;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;许多人的晋升，并不完全由于能力，更多是因为成熟的心态与心胸。积极的表达方式：不说&amp;ldquo;我无能为力&amp;rdquo;，而是说&amp;ldquo;尽力尝试有无其他可能性&amp;rdquo;。不说&amp;ldquo;他使我怒不可遏&amp;rdquo;，而是说&amp;ldquo;我可以控制自己的情绪&amp;rdquo;！&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;还有的人不爱参与集体活动，开会也不愿发表个人的建议，甚至不愿任何给自己展示机会的场合，觉得那些跟自己没有关系，但又反过来觉得自己怀才不遇抱怨漫天。其实，人生是个大舞台，职场是个小舞台，想在舞台上扮演主角，要在游戏中获胜，就得先登上舞台，先加入游戏。不要去做&amp;ldquo;看客&amp;rdquo;。否则，你永远都是个旁观者。突破&amp;ldquo;看客&amp;rdquo;困境，要做主角，第一步就是得去争取有戏可演，哪怕一开始只是个跑龙套的。&lt;br /&gt;&lt;b&gt;二. 做事的方法&lt;br /&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp; 技术以外的第二个能力是做事的方法。做事的方法是我们提高效率，少走弯路的手段。你之所以先做这个而不先做那个，之所以这么做而不是那么做，就是做事的方法。古人云：&amp;ldquo;只要功夫深，铁棒磨成针&amp;rdquo;。勤劳的美德在历来都被奉高尚的美誉。但同样的努力同样的付出而结果却不同，这就是为什么有些人能够成功，有些人不能够成功。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;做事的方法，就是在你心里看待人，事，物的关系的时候，你出发的角度，个人素养和情商，所展现出来的一种决策逻辑。你拿这个逻辑来判断问题，而这个东西会引导你采用不同的方式来执行。例如，我们看马云，不要看马云成功的故事，而应该看马云是怎样在微观决策的时候，判断细小的是非。比如马云在上市的时候，他只拿了5％的股份，这就是价值观。还有一些人，忙活了半天没见什么成效，甚至适得其反。做事的方法确实会导致很多的人生不同和结局。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;人的一生会遇到千千万万的事情，而在面对这些事情的时候其实有个很关键的原则：选择正确的事去做。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(1) 做正确的事情比正确地做事情要重要得多，也有效的多。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(2) 成功人士也许做不成很多事情，但却能够集中精力做成一件事情。而事实上，这一件事往往就足以改变一个人的命运。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(3) 必须放弃或减少那些与重要的事无关的东西，必须忍住不为小事所缠。如果一个人过于努力想把所有事都做好，他就不会把最重要的事做好。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(4) 成功者大都深知：&amp;ldquo;太专注于小事的人通常会变得对大事无能&amp;rdquo;，并能清楚&amp;ldquo;抓住大事，小事自会照顾好自己&amp;rdquo;的道理。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(5) 事情来了先别急着做，先想想能否不做。这也是很多技术人员常有的习惯，遇到问题恨不能马上动手写出代码实现看看，其实你会发现无形中做了很多的无用功，浪费了很多时间，当然，你也许得到了一种满足感！&lt;br /&gt;&lt;b&gt;三. 责任感和担当&lt;br /&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp; 还有就是一个人在生活中和工作中表现出来的责任感和担当。因为如果你没有责任感就不可能委以重任，如果没有那份担当就没有一种勇气和魄力来征服挫折和困难。所有人想成功必须面对两个问题，承担更大责任，带领大家征服未来的魄力。偷奸耍滑只能快活一时，唯唯诺诺则难成大器。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;在工作也是这样，如果我们做事有很强的责任心，交到我们手上的工作会认认真真，保证质量的完成，让领导放心，得组织信任，你觉得是不是会让你负责更重要的项目呢？如果我们遇事懂得积极解决问题，碰到困难敢于面对，你觉得是不是会对你负责未来的项目有充分的信心呢？有了这样的责任和担当，就有了一个领导者最基本的品质。 &lt;br /&gt;&lt;b&gt;四. 目标与定位&lt;br /&gt;&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;无论是人生在世，还是闯荡职场，总要有个目标和定位。目标对人生有巨大的导向性作用。成功，在事业起步的时候仅仅是一种选择，你选择什么样的目标，就会有什么样的人生。不少朋友最大的痛苦就是不知道自己适合做什么，该干什么，该走什么路，不满于现状之余又不得不沉沦于现实。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;所以，先认清&amp;ldquo;正确的结果&amp;rdquo;，根据正确的结果去设计你的过程。当一个人具有明确目标，会对有助于实现目标的蛛丝马迹都特别敏感，做事情相应也就会很有目的性，而不是稀里糊涂。所以，就容易到达自己的目的。如果没有目标，就算是天上真有神仙，如果你不能明确地说明自己想要什么，神仙也不知道该给你什么。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;职业规划就是要搞清楚自己的优势在什么地方，自己最适合做什么。它的目的不是要你变成另外一个人，而是变成最好的你自己。当有了自己坚定的目标和定位，打工就不再是为别人卖命，而是为了自己的目标在奋斗！用这样的标准来衡量自己的成长和进步，那样的人生会变得更轻松，更快乐。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;如果你自认为你得技术还不错，但一直没有晋升的话，我想你有必要想想这些技术以外的功夫了。（转自：天道酬勤）&lt;/p&gt;&lt;img src="http://www.cnblogs.com/jiayong/aggbug/1740862.html?type=2" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jiayong/articles/1740862.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jiayong/archive/2010/03/02/1676781.html</id><title type="text">深入浅出讲解什么是面向对象思想</title><summary type="text"> 整理这份资料的目的是为了帮助朋友们能够更直观的理解面向对象的编程。让后来者能够少走一些弯路。但其中不免有许多漏洞及错误，也还请前辈提出宝贵的更改意见，毕竟交流会让我们不断的进步。  技术是日新月异的，他不会等待你的成长。技术要拿出来于别人交流，自己学是自己主观意识上的理解，有对有错！交流会让进步变得更快。我认为如果计算机 的体系结构不发生革命性的变化，我们现在所应用的程序语言也就百变不离奇踪了！学编程学的是什么？思想！精通一门编程语言（最好是面向对象的语言）后再去 搞其他的编程语言，你会发现过程是如此的行云流水！为什么？你已经把编程的思想掌握了，再去学其他的，无非是学习一种新的语法格式了。  我在这里并不是和你讨论怎么去用C++或JAVA，也不是和你讨论怎么去学他们，我要和你讨论的是怎么去理解面向对象。其中主要会涉及到“类、对象、 继承、属性、方法、静态、重载、隐藏、重构、声明、定义、初始化、赋值等”其中有许多相关技术我只会一代而过，让你有一种到此一游的意味我就达到目的了， 而更详细的技术内幕，就请参考其他相关书籍而深入研究吧！因为我只是在和你探讨如何去更好的理解面向对象！&#xD;</summary><published>2010-03-02T13:15:00Z</published><updated>2010-03-02T13:15:00Z</updated><author><name>小鱼儿</name><uri>http://www.cnblogs.com/jiayong/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jiayong/archive/2010/03/02/1676781.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jiayong/archive/2010/03/02/1676781.html"/><content type="html">&lt;p&gt;面向对象思想----不看后悔! &lt;br /&gt;&lt;br /&gt;前言：&lt;br /&gt;&amp;nbsp; 整理这份资料的目的是为了帮助朋友们能够更直观的理解面向对象的编程。让后来者能够少走一些弯路。但其中不免有许多漏洞及错误，也还请前辈提出宝贵的更改意见，毕竟交流会让我们不断的进步。&lt;br /&gt;&amp;nbsp; 技术是日新月异的，他不会等待你的成长。技术要拿出来于别人交流，自己学是自己主观意识上的理解，有对有错！交流会让进步变得更快。我认为如果计算机 的体系结构不发生革命性的变化，我们现在所应用的程序语言也就百变不离奇踪了！学编程学的是什么？思想！精通一门编程语言（最好是面向对象的语言）后再去 搞其他的编程语言，你会发现过程是如此的行云流水！为什么？你已经把编程的思想掌握了，再去学其他的，无非是学习一种新的语法格式了。&lt;br /&gt;&amp;nbsp; 我在这里并不是和你讨论怎么去用C++或JAVA，也不是和你讨论怎么去学他们，我要和你讨论的是怎么去理解面向对象。其中主要会涉及到&amp;ldquo;类、对象、 继承、属性、方法、静态、重载、隐藏、重构、声明、定义、初始化、赋值等&amp;rdquo;其中有许多相关技术我只会一代而过，让你有一种到此一游的意味我就达到目的了， 而更详细的技术内幕，就请参考其他相关书籍而深入研究吧！因为我只是在和你探讨如何去更好的理解面向对象！&lt;br /&gt;&amp;nbsp; 如何去提高效率？重复使用资源，把别人的东西拿来就用。这是很不错的主意！而对于你来说，最大的资源就是信心以及积极性！好，打起精神来，让我们一同到面向对象的编程中去寻幽访胜吧！&lt;br /&gt;&amp;nbsp; 注：文章中所有程序实例我都使用JAVA写的，当然在C++中也就大同小异了了，不同的地方我会指出！&lt;br /&gt;&amp;nbsp; 注：文章中的正文文字用黑色，说明文字用蓝色，强调文字用橙色，批改文字用红色！&lt;br /&gt;&lt;br /&gt;正文：&lt;br /&gt;&lt;br /&gt;1．基本概念：&lt;br /&gt;1.1 类与对象的初探&lt;br /&gt;&amp;nbsp; 要我说，无论是面向过程的语言也好，面向对象的语言也罢，我首先要给他讲的都是类和对象！--------&amp;ldquo;这个世界是由什么组成的？&amp;rdquo;这个问题如果 让不同的人来回答会得到不同的答案。如果是一个化学家，他也许会告诉你&amp;ldquo;还用问嘛？这个世界是由分子、原子、离子等等的化学物质组成的&amp;rdquo;。如果是一个画家 呢？他也许会告诉你，&amp;ldquo;这个世界是由不同的颜色所组成的&amp;rdquo;。&amp;hellip;&amp;hellip;呵呵，众说纷纭吧！但如果让一个分类学家来考虑问题就有趣的多了，他会告诉你&amp;ldquo;这个世界是 由不同类型的物与事所构成的&amp;rdquo;好！作为面向对象的程序员来说，我们要站在分类学家的角度去考虑问题！是的，这个世界是由动物、植物等组成的。动物又分为单 细胞动物、多细胞动物、哺乳动物等等，哺乳动物又分为人、大象、老虎&amp;hellip;&amp;hellip;就这样的分下去了！&lt;br /&gt;&amp;nbsp; 现在，站在抽象的角度，我们给&amp;ldquo;类&amp;rdquo;下个定义吧！我的意思是，站在抽象的角度，你回答我&amp;ldquo;什么是人类？&amp;rdquo;首先让我们来看看人类所具有的一些特征，这个 特征包括属性（一些参数，数值）以及方法（一些行为，他能干什么！）。每个人都有身高、体重、年龄、血型等等一些属性。人会劳动、人都会直立行走、人都会 用自己的头脑去创造工具等等这些方法！人之所以能区别于其它类型的动物，是因为每个人都具有人这个群体的属性与方法。&amp;ldquo;人类&amp;rdquo;只是一个抽象的概念，它仅仅 是一个概念，它是不存在的实体！但是所有具备&amp;ldquo;人类&amp;rdquo;这个群体的属性与方法的对象都叫人！这个对象&amp;ldquo;人&amp;rdquo;是实际存在的实体！每个人都是人这个群体的一个对 象。老虎为什么不是人？因为它不具备人这个群体的属性与方法，老虎不会直立行走，不会使用工具等等！所以说老虎不是人！&lt;br /&gt;&amp;nbsp; 由此可见-------类描述了一组有相同特性（属性）和相同行为（方法）的对象。在程序中，类实际上就是数据类型！例如：整数，小数等等。整数也有 一组特性和行为。面向过程的语言与面相对象的语言的区别就在于，面向过程的语言不允许程序员自己定义数据类型，而只能使用程序中内置的数据类型！而为了模 拟真实世界，为了更好的解决问题，往往我们需要创建解决问题所必需的数据类型！面向对象编程为我们提供了解决方案。&lt;br /&gt;&lt;br /&gt;1.2 内置数据类型与函数： &lt;br /&gt;&amp;nbsp; 计算机程序在存储数据时必须跟踪3个基本属性为：&lt;br /&gt;&amp;nbsp; 1． 信息存储在何处；&lt;br /&gt;&amp;nbsp; 2． 存储的值是多少；&lt;br /&gt;&amp;nbsp; 3． 存储的信息是什么类型的；&lt;br /&gt;&amp;nbsp; 让我们来看看编程语言的内置数据类型都有哪些！（呵呵，这个不大好说，因为每门语言都有自己独特的数据类型，但这毕竟是少数，比如在JAVA中有 byte类型的数据，而在C++中就没有，希望你能举一反三！）比如整数&amp;rdquo;int &amp;rdquo;，浮点类型的数据&amp;rdquo;float&amp;rdquo;！字符串&amp;rdquo;String&amp;rdquo;，以及数组还有结构体等等。然而在写程序的时候，根据需要我们会创建一个类型的变量或常量，例 如：由于我们需要创建一个整形的变量i为5，我们就可以这样做，int i = 5;而根据需要我很有可能改变i的值，也就是从新给它赋值，比如让它等与6，就可以在所需的地方改成i = 6;由此我们知道，在&amp;ldquo;值&amp;rdquo;上可以发生变化的量就叫变量。不会发生变化的量就叫做常量了，在C++中用count关键字来声明，而在JAVA中则使用 final关键字来声明。由于不同语言的声明格式不一样，这里就不做一一介绍了，详细的内容清查阅相关书籍！&lt;br /&gt;&amp;nbsp; 在这里我们主要讨论一下函数，我们可以把函数想象成一个&amp;ldquo;实现某种特定功能的黑匣子&amp;rdquo;-------这个功能是由你来设定的，举个例子来说：现在我问 你&amp;ldquo;2+3等于多少&amp;rdquo;？我相信你能很快的回答我等于5。让我们来分析分析这句话包含什么信息！首先我要把你的大脑想象成是一个黑匣子，我并不知道也没有必 要知道你的大脑是如何工作的（也就是怎么运算的），我关心的只是我传给你的是什么信息？你对信息做了哪些处理？ 以及你返回给我的是什么信息？需要提醒你一下的是每个方法都会返回一个信息给调用者的，除了构造函数外（稍候我会作详细的介绍）。我现在需要把自己当作是 一名程序员，而你呢？当然就是计算机了！计算即可没有人那么聪明，它只会按事先约好的特定的格式运行，我想让它具有如上所述的功能，我就要先定义这个黑匣 子！首先我要告诉这个黑匣子会有两个整数值给你（这就是所谓的参数，是程序员需要给黑匣子的信息），然后就要定义这个黑匣子内部实现这两个整数相加的运算 （这就是黑匣子对数据所做的加工，根据需要，你可以做任何的加工。）。最后再标注它返回给我一个同样是整型的数值（这是黑匣子返回给程序员的信息）。一个 函数就这样定义完了，让我们来看看书写格式：&lt;br /&gt;&lt;br /&gt;int addnum(int x,int y){&lt;br /&gt;return x+y;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;具体的含义是这样的：&lt;br /&gt;&lt;br /&gt;int /*返回值类型*/ addnum /*方法（黑匣子）名称*/ (int x,int y/*传入的参数*/){&lt;br /&gt;return x+y; /*内部是想方法（实现相加运算，）并用return返回给调用者结果*/&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;首先请注意上明的&amp;ldquo;return&amp;rdquo;语句！return 关键字的含义是向调用者返回紧跟在它后面的信息！就像上面一样，因为我问你，你才会回答我，如果我不问你，你就不用回答我的！在计算机中也一样，定义好这 个函数在哪里调用呢？我只能告诉你，哪里需要就在哪里调用！当然，你可以根据需要去更改参数、返回值以及内部实现，具体到如何定义如何调用你只好去参考相 关的资料了！在这里我只是给你一个思想！&lt;br /&gt;&amp;nbsp; 有时你会遇到这样的问题，我让你记住，我的年龄是20岁！从字面上理解，你并没有给我返回信息！然而事实上，你确实给我返回了信息，信息的内容是&amp;ldquo;无信息，也就是无返回值类型void&amp;rdquo;。具体的程序如下：&lt;br /&gt;&lt;br /&gt;int myAge = 0;&lt;br /&gt;int a=20;&lt;br /&gt;void remAge(int a){&lt;br /&gt;myAge=a;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;具体的函数说明如下：&lt;br /&gt;&lt;br /&gt;int myAge =0; //定义并初始化我的年龄为0；&lt;br /&gt;int a=20; /*定义变量a等于20*/&lt;br /&gt;void /*返回值类型为无返回值类型*/ remAge /*函数名称*/(int a /*传入的参数*/){&lt;br /&gt;myAge=a; //内部实现方法，注意，没有return返回！！！&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; 关于函数的话题还有很多很多，这里就不一一介绍了，我的目的是让你知道函数是怎么一会事儿！为下面的讨论作铺垫！&lt;br /&gt;&lt;br /&gt;1.3 指针以及引用：&lt;br /&gt;&amp;nbsp; 指针及引用是在C++中有的，JAVA中没有。JAVA中取消了对内存的操作，随之而来的事也取消了操作符重载的操作。不过在稍候我还是会介绍一些操 作符重载的功能等。引用主要还是用在函数参数的传递上。所以我在这里就不做过多的介绍了。他们很实用，有兴趣的同学可以参阅C++相关书籍。&lt;br /&gt;1.4 运算符及控制语句：&lt;br /&gt;&amp;nbsp; 还是自己看看相关书籍吧，这里就不再熬述了！&lt;br /&gt;&lt;br /&gt;2．深入探讨面向对象：&lt;br /&gt;2.1&amp;ldquo;类型&amp;rdquo;的内部细节：&lt;br /&gt;&amp;nbsp; 有了上面的知识，我们现在就可以深入的挖掘类的内部实现了。所有的知识点我都会围绕着类与对象展开，在此之前，我希望你能够确信对以上所介绍的基本内容已完全掌握了！&lt;br /&gt;&amp;nbsp; 是的，面向对象的编程语言最大的特色就是可以编写自己所需的数据类型，以更好的解决问题。我想我必须要帮你搞清楚&amp;ldquo;类，对象，属性，方法它们之间的关 系&amp;rdquo;！就像我前面所说的，人这个&amp;ldquo;类&amp;rdquo;是什么也做不了的，因为&amp;ldquo;人类&amp;rdquo;只是一个抽象的概念，它不是实实在在的&amp;ldquo;东西&amp;rdquo;，而这个&amp;ldquo;东西&amp;rdquo;就是所谓的对象。只 有人这个&amp;ldquo;对象&amp;rdquo;才能去工作。而类呢？类是对象的描述！对象从类中产生出来！此时，对象具有类所描述的所有的属性以及方法。-------一定要理解这句 话！！！&lt;br /&gt;也许你已经有些不知所措了，没关系！好好的回味一下，我再举个例子！例如电视机，电视机都有工作原理图，那么什么叫电视机呢？只要它能够实现工作原理图的 所有功能的物体，我们都叫它电视机。你想想是不是这么一回事儿？可是，电视机原理图是不能工作的，也就是这个原理图不能收看节目，只有电视机这个&amp;ldquo;实体 &amp;mdash;&amp;mdash;即所谓的对象&amp;rdquo;才能收看节目，也就是说，从类生成出对象之后才算得上是真正的有意义！才能开始工作。此时，电视机拥有电视原理图所描述的所有的属性及 方法！明白了吧，呵呵！&lt;br /&gt;&amp;nbsp; 我先前介绍过，类是属性与方法的集合。而这些属性与方法可以被声明为私有的（private），公共的(public)或是受保护(protected)的，他们描述了对类成员的访问控制。下面我分别做一下介绍：&lt;br /&gt;&amp;nbsp; 1． 公共的（public）：把变量声明为公共类型的之后，那么就可以通过对象来直接访问，一切都是暴露无遗的！也就是说，你的信用卡密码别人也能够直接得到。&lt;br /&gt;&amp;nbsp; 2． 私有的（private）：如果把变量声明为私有的情况就好多了，想要得到我的信用卡密码，对象必须要调用专用的方法才能够得到。&lt;br /&gt;&amp;nbsp; 3． 受保护的（protected）：介绍继承时再讨论。&lt;br /&gt;&amp;nbsp; 4． 默认控制访问符（friendly）：//JAVA中有而C++中没有。&lt;br /&gt;为了实现数据的封装，提高数据的安全性，我们一般会把类的属性声明为私有的，而把类的方法声明为公共的。这样，对象能够直接调用类中定义的所有方法，当对 象想要修改或得到自己的属性的时候就必须要调用以定义好的专用的方法才能够实现。你想想，你会把你的信用卡密码公布出来嘛？呵呵！所以，我们提倡的是： &amp;ldquo;对象调方法，方法改属性&amp;rdquo;；&lt;br /&gt;2.2通过实例看内存分配：&lt;br /&gt;&amp;nbsp; 说了这么多，让我们来看一个实例吧！比如：现在我们要编写某家公司员工管理系统，你认为最合适的数据类型是什么？我认为是员工个人！但是在面向过程的 语言中，这样做是不允许的，因为它只能使用语言中的内部数据类型！而员工不在这个内部数据类型之内！也许有人会说可以用C语言中的struct，好注意！ 毕竟它是类的基础！如果你以前是一名面C或B的程序员，请你忘掉这些，让我们一起看看如何用类来实现这一切吧！&lt;br /&gt;&amp;nbsp; 某家公司的员工是人类的一个特殊群体，它除了具备人类的所有特性与方法外，它还有额外的特性与方法，比如她有她的工资、信用卡密码、作息时间等等，这 些特性以及工作内容，工作量等等这些方法。而在计算机中我们该如何定义这个类呢？下面我将写出它的格式，让你看看在计算机中它是张什么样子的！&lt;br /&gt;&lt;br /&gt;/*在此我需要再次声明的是，我用的是JAVA格式，在语法格式上它与C++大不相同！许多细节以及内部操作都有诸多区别，而在思想上确实大同小异的*/&lt;br /&gt;//employee.java&lt;br /&gt;public class employee{&lt;br /&gt;private String name; //员工姓名&lt;br /&gt;private int age; //员工年龄&lt;br /&gt;private char sex; //员工性别&lt;br /&gt;private float emolument; //员工薪水&lt;br /&gt;private boolean lunch; //员工午餐&lt;br /&gt;//&amp;hellip;&amp;hellip;等等&lt;br /&gt;public void heater(){ //这个方法是用来加工员工的午餐&lt;br /&gt;lunch = true;&lt;br /&gt;}&lt;br /&gt;public void setName(String a){ //这个方法是修改员工的姓名&lt;br /&gt;name= a;&lt;br /&gt;}&lt;br /&gt;public String getName(){ //这个方法是得到员工的姓名&lt;br /&gt;return name;&lt;br /&gt;}&lt;br /&gt;//&amp;hellip;&amp;hellip;等等&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp; 这样我们就定义完了我们所需要的数据类型。现在，让我们来看看它能够干什么以及怎么工作！&lt;br /&gt;&amp;nbsp; 我想要做的是，工作室里有一个光杆司令叫&amp;ldquo;jingwei&amp;rdquo;，我修改它的名字后对对它进行输出，看看我是怎么做的吧！&lt;br /&gt;注意：请仔细观察对象是如何调用方法的，它使用了&amp;ldquo;.&amp;rdquo;操作符！事实上是这样的，对象调用公共的属性或方法时就会使用&amp;ldquo;.&amp;rdquo;操作符。&lt;br /&gt;然而在C++中，如果定义一个同类型的指针，该指针调用此对象的方法时，就会使用&amp;ldquo;-&amp;gt;&amp;rdquo;操作符。更详细的内容清参阅相关书籍了！&lt;br /&gt;&lt;br /&gt;//workstation.java&lt;br /&gt;import java.awt.Graphics;&lt;br /&gt;import java.applet.Applet;&lt;br /&gt;public class workstation extends Applet{&lt;br /&gt;private employee jingwei ; //对象的声明，此时并不分配内存！&lt;br /&gt;public void init(){&lt;br /&gt;jingwei = new employee(); /*此时创建对象会调用构造函数，稍候介绍*/&lt;br /&gt;jingwei.setName(&amp;ldquo;jw&amp;rdquo;); //设置我的名字&lt;br /&gt;}&lt;br /&gt;public void paint(Graphics g){&lt;br /&gt;g.drawString("my age is "+jingwei.getName(),10,10);//显示我的年龄&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;输出结果是：&lt;br /&gt;&lt;br /&gt;my name is jw&lt;br /&gt;&lt;br /&gt;&amp;nbsp; 这串字符串是在输出窗口的x坐标轴为10 px , y坐标轴为10 px的位置。&lt;br /&gt;我现在要做的是，把上面的程序做个大解剖，让你能够看清楚它到底是怎么一回事儿！（我可不时带你去看里面的汇编，呵呵，那个我也不会：）&lt;br /&gt;&lt;br /&gt;&amp;nbsp; 首先还是来看看我们自定义的数据类型employee，在应用的时候它和int类型的数据没什么两样，一样的需要创建变量（对象），只不过前者是咱自 己定义的，而后这是它内置的。Employee这个类中有许多属性，也有许多方法。而此时，我们不能直接用我们所创建出来的对象调用它的属性进行修改。因 为它是private受保护类型的！我要想修改我的姓名我就要用对象调用setName()这个方法，而我想得到我的姓名就要调用getName()这个 方法。我们完全是按照航线来行走的，这个航线就是&amp;ldquo;对象调方法，方法改属性&amp;rdquo;&lt;br /&gt;&amp;nbsp; 好的，我真的相信你已经明白了这是怎么一回事儿了！呵呵！仰起航帆，继续前行！&lt;br /&gt;现在让我们一起来看看workstation这个类。这是个主类，和C++中的main()函数的味道差不多。其中，在JAVA中，一个文件只允许有而且必须有一个主类，这个主类用public来声明！他就跟C++中必须要有一个main()函数是一样的。&lt;br /&gt;&amp;nbsp; 让我们来看看这个类中的第一条语句！private employee jingwei ;这条语句的作用是声明一个employee的对象jingwei（在C++中就不用声明了）。我想要和你说的是&amp;ldquo;声明&amp;rdquo;与&amp;ldquo;定义&amp;rdquo;之间的区别。声明只是 告诉计算机将要有这样的一个变量（对象），在内存中它并不为这个变量（对象）分配内存！而只有在定义的时候才会给这个变量（对象）分配内存。（需要说明一 下的是init()方法是完成初始化操作的，在此处定义对象，为对象分配内存。start()方法用来启动浏览器的主线程，paint()方法来显示 Apple的界面。这些是Applet程序所需的，至于Application程序就不需要了，当然了，C++中也不需要他们。关于他们的详细内容清参阅 相关书籍）&lt;br /&gt;&amp;nbsp; 紧接着就开始定一个对象了，对jingwei这个对象进行操作才会有实际的意义。千万不要有这种想法：&amp;ldquo;试图对类进行操作！&amp;rdquo;就像前面我说的，电视机 原理不能看电视一样！这是毫无意义的！看这条语句jingwei = new employee();它的意思就是定义一个employee类型的对象jingwei。此时，我想告诉你的是：&amp;ldquo;jingwei这个对想拥有了些什 么&amp;rdquo;。它拥有了类所描述的所有的属性及方法。下面我一一给你列出来：&lt;br /&gt;&lt;br /&gt;/*所有的employee对象都拥有这些属性。每创建一个对象就会从新分配一块内存来存放相应对象的这些属性。我的意思是每个对象都有自己&amp;ldquo;独特&amp;rdquo;的一份*/&lt;br /&gt;private String name; //员工姓名&lt;br /&gt;private int age; //员工年龄&lt;br /&gt;private char sex; //员工性别&lt;br /&gt;private float emolument; //员工薪水&lt;br /&gt;private boolean lunch; //员工午餐&lt;br /&gt;/*所有的employee对象都拥有这些方法。但在内存中只有一份*/&lt;br /&gt;public void heater(){ //这个方法是用来加工员工的午餐&lt;br /&gt;lunch = true;&lt;br /&gt;}&lt;br /&gt;public void setName(String a){ //这个方法是修改员工的姓名&lt;br /&gt;name= a;&lt;br /&gt;}&lt;br /&gt;public String getName(){ //这个方法是得到员工的姓名&lt;br /&gt;return name;&lt;br /&gt;}&lt;br /&gt;/*但是，实际上在创建jingwei这个对象时计算机只给这个对象的所有的属性分配了内存，而并没有给方法分配内存。方法只有一个，是属于所有的对象的，所以无论创建了多少个对象，计算机只会为一个方法分配一块内存。*/ &lt;br /&gt;我想我还是举个例子吧，不然你非晕倒不可。呵呵！&lt;br /&gt;&amp;nbsp; 看我这条语句&amp;ldquo;private boolean lunch;&amp;rdquo;公司不管午餐，每个员工都需要带饭。我们现在这样想，公司的空间是所有的内存容量，你的办公桌就是计算机中的内存中的一部分（每个员工都有 一份，是在创建对象时分配的）。你把午饭带到了公司，放在了你的办公桌上。&amp;ldquo;午饭&amp;rdquo;占据了你的办公桌的一角（占了你自己&amp;ldquo;对象&amp;rdquo;的一块内存容量）。这份午 饭只属于你自己，同样别人的也只属于她自己！所以每个员工（对象）都需要一快空间（内存）来存放自己的午餐（属性）。在计算机中也是这样的，每创建一个对 象，就会在内存中从新分配一块内存来放&amp;ldquo;午餐&amp;mdash;&amp;mdash;lunch&amp;rdquo;这个属性（对象所拥有的所有的属性）。&lt;br /&gt;&amp;nbsp; 计算机只会为对象的属性分配内存。因为每个对象的都不一样！就像你往公司带的午饭和我往公司带的午饭不一样是一个道理！但方法就不同了。早晨带的饭中 午就凉了，你需要用微波炉来加热。微波炉可不用你带，公司就有（只占公司的一块空间），它放在了午餐桌上。你想想，微波炉属于谁的？它属于所有员工的！因 为每个员工都可以用它。而不必每个员工都带一份。由此可见，每个员工（对象）都有一份午饭（属性），但所有的员工（对象）只一个微波炉（方法）。所有的员 工（对象）都可以通过这个微波炉（方法）来改变自己午餐（属性）的冷热状态。殊途同归！在计算机中也就是这样，方法只有一份，供所有的对象使用！而属性是 每个对象一份，因为每个对象的都不一样。别和我说你还不明白，不然我会撞墙的，呵呵：）&lt;br /&gt;&lt;br /&gt;&amp;nbsp; 2.3深入探讨函数：&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; 2.3.1构造函数、默认构造函数、 缺省构造函数&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; 对于上面的实例，它已经能完成绝大部分工作了，但它还是不完善的，还有许许多多的细节等到我们去完善！也许有的同学已经注意到了，当我创建完 &amp;ldquo;jingwei&amp;rdquo;这个对象时，这个对象的所有的属性都是空的，也就是说：这个对象的姓名是未定的、年龄是未定的、性别是未定的、薪水是未定的、午餐也是 未定的。而我们想把这些属性都添加上去，就还要用对象调用相应的方法，去一个个修改！天啊，这简直是太麻烦了！有没有什么好方法能够在我们创建对象的同时 就完成了对属性赋值的操作呢？哦不，应该说是对属性的初始化呢？当然没问题了，这就需要所谓的构造函数！&lt;br /&gt;&amp;nbsp; 构造函数是类中最特殊的函数，它与析构函数的功能正好相反！&lt;br /&gt;&amp;nbsp; 从特征上来说：1.它是编程语言中唯一没有返回值类型的函数。&lt;br /&gt;&amp;nbsp; 2.它的名称与类的名称必须要完全相同。&lt;br /&gt;&amp;nbsp; 3.它必须被声明为公共（public）的类型&lt;br /&gt;&amp;nbsp; 4,可以对构造函数进行重载。&lt;br /&gt;&amp;nbsp; 5.它在创建对象是自动被调用。&lt;br /&gt;&amp;nbsp; 从功能上来说：1.它是对类中的属性进行初始化。&amp;nbsp; &lt;br /&gt;&amp;nbsp; 其实，对于上面的程序来说我们没有自己定义构造函数。但是，在这种情况下，系统会自动为我们定义一个&amp;ldquo;默认构造函数&amp;rdquo;。他会把数值变量自动赋值为0， 把布尔行变量赋值为false等等（但在C++中，默认构造函数不初始化其成员）。如果程序员定义了构造函数，那么系统就不会再为你的程序添加一个缺默认 造函数了。（在这里，我们提倡的是自己定义构造函数，而不是用系统的默认构造函数）&lt;br /&gt;&amp;nbsp; 还是看个实例吧！这样比较清楚一些！&lt;br /&gt;&lt;br /&gt;&amp;nbsp; //employee.java&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; public class employee{&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; private String name; //员工姓名&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; private int age; //员工年龄&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; private char sex; //员工性别&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; private float emolument; //员工薪水&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; private boolean lunch; //员工午餐&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; //&amp;hellip;&amp;hellip;等等&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; public employee(){ //这个就是&amp;ldquo;默认&amp;rdquo;构造函数&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; name = &amp;ldquo;jw&amp;rdquo;; //设置员工姓名&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; age = 20; //设置员工年龄&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; sex = &amp;ldquo;M&amp;rdquo;; //设置员工性别&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; emolument = 100; //设置员工薪水&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; lunch = false; //设置员工午餐&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; public void heater(){ //这个方法是用来加工员工的午餐&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; lunch = true;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; //&amp;hellip;&amp;hellip;等等&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; };&lt;br /&gt;&lt;br /&gt;&amp;nbsp; 这样，在我们创建&amp;ldquo;jingwei&amp;rdquo;这个对象的同时，它的所有的属性也被初始化了！显然，这大大的提高了工作效率，但是，它还是不符合要求。想想看， 如果我们现在创建这个类型的第二个对象的时候会发生什么事情？告诉你，除了对象的&amp;ldquo;名&amp;rdquo;（这个名称不在是对象属性中的名称，而是对象本身的名称）不一样 外，其所有的&amp;ldquo;属性值&amp;rdquo;都一样！比如：现在我们创建第二个对象flashmagic，然而我会发现这个对象的所有的属性和jingwei这个对象的所有的 属性完全相同。而我们只能在用对象的方法去改变着写属性了！很显然，这种方法不大好！我们需要一种方法在创建对象的时候为对象的属性赋予&amp;ldquo;我们想要的 值&amp;rdquo;。&lt;br /&gt;&amp;nbsp; 相信你也看到了，默认构造函数就显得无能为力了。我们需要的是带参数的构造函数，在创建对象时，我们把参数传给构造函数，这样就能完成了上述的功能！口说无凭，还是来看个实例吧：&lt;br /&gt;&lt;br /&gt;&amp;nbsp; //employee.java&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; public class employee{&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; private String name; //员工姓名&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; private int age; //员工年龄&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; private char sex; //员工性别&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; private float emolument; //员工薪水&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; private boolean lunch; //员工午餐&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; //&amp;hellip;&amp;hellip;等等&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; public employee(String n,int a,char s,float e,boolean l){ //看这个构造函数&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; name = n; //设置员工姓名&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; age = a; //设置员工年龄&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; sex = s; //设置员工性别&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; emolument = e; //设置员工薪水&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; lunch =l; //设置员工午餐&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; public void heater(){ //这个方法是用来加工员工的午餐&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; lunch = true;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; //&amp;hellip;&amp;hellip;等等&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; };&lt;br /&gt;&lt;br /&gt;&amp;nbsp; 这样一来，在创建对象的同时我们就可以给他赋予我们想要的值，很显然，这可就方便多了。哦，对了！还没有告诉你怎么创建呢！哈哈，往前翻几页你会看到这句话：&lt;br /&gt;&amp;nbsp; jingwei = new employee();这是创建一个对象，而我们把它改成&lt;br /&gt;&amp;nbsp; jingwei = new employee("jingwei",20,'M',100,false);这样一来，所有的工作都完成了，呵呵！（在创建对象的同时赋予了我们想要的&amp;ldquo;初值&amp;rdquo;）&lt;br /&gt;&lt;br /&gt;&amp;nbsp; 2.3.2重载构造函数：&lt;br /&gt;&amp;nbsp; 我还是先把概念给你吧，让你有个认识，随后我们在进行论述。&lt;br /&gt;&amp;nbsp; 在JAVA中：&lt;br /&gt;&amp;nbsp; 1. 函数重载是一个类中声明了多个同名的方法，但有不同的参数个数和参数类型。&lt;br /&gt;&amp;nbsp; 2. 函数重构是指在子类中声明与父类同名的方法，从而覆盖了父类的方法。重构解决了子类与父类的差异问题。（在讨论到继承时我会详细说明）&lt;br /&gt;&amp;nbsp; 在C++中：&lt;br /&gt;&amp;nbsp; 1． 数重载的概念一样。&lt;br /&gt;&amp;nbsp; 2． 重构的概念可就不一样了，C++中功能更为庞大的虚函数。更详细内容这里就不错过多介绍了！&lt;br /&gt;&amp;nbsp; 其实关于重载的概念你并不陌生，在编程中相信你也接触过。呵呵！让我们来举个操作符重载的例子你就会明白了，（JAVA中不支持这个功能）我们定义三个整数变量：&lt;br /&gt;&lt;br /&gt;&amp;nbsp; int i1=2, i2=3,i3=0;&lt;br /&gt;&amp;nbsp; i3 = i1 + i2; &lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; 此时i3=5;加号实现了两个数相加的运算功能。然而我们现在要定义三个字符串变量：&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; String str1=&amp;rdquo;jing&amp;rdquo;, str2=&amp;rdquo;wei&amp;rdquo;,str3=&amp;rdquo;&amp;rdquo;;&lt;br /&gt;&amp;nbsp; str3 = str1 + str2;&lt;br /&gt;&lt;br /&gt;此时str3 = &amp;ldquo;jingwei&amp;rdquo;;加号实现了两个字符串相加的运算功能。同样是加号，既可以把两个整型的变量加在一起，也可以把两个字符串类型的变量加在一起。同一个 操作符实现了不同的功能------这就是所谓的操作符重载（嘿嘿，我说你一定见过吧：）！不就好像是汉语中的一词多意一样！我需要说明一下的是，C++ 中的操作符重载可没有这么简单。比如，我们可以对两个自定义类型的对象进行相加的运算，进行赋值的运算。这样书写简洁明了，而且非常实用。当然，关于操作 符重载的话题太多了，有兴趣再看看书吧！&lt;br /&gt;&amp;nbsp; 我们把操作符的话题在转到函数上来，我们一直强调的是&amp;ldquo;对象调方法&amp;rdquo;------对象其实调的是方法的&amp;ldquo;名称&amp;rdquo;。而我们现在要对方法进想重载，也就是 定义多个相同名称的函数，这样计算机在调用的时候不会混淆嘛？我想应该不会的，呵呵，因为仅仅是函数名称相同，而我们在调用函数时会把参数传递给他的。既 是没有参数也是一种参数传递参数的信息（信息为无参数）！然而由于参数类型、参数数量、返回值类型不同我们就可以对相同名称的函数进行区分?&lt;/p&gt;&lt;img src="http://www.cnblogs.com/jiayong/aggbug/1676781.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/jiayong/archive/2010/03/02/1676781.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/jiayong/archive/2009/09/09/1563442.html</id><title type="text">企业没有忠诚的员工，只有真实的需求（听曾仕强讲座一句话有感）</title><summary type="text"> 最近听曾仕强的讲座“中国式企业管理”发现这方面的知识自己欠缺的太多，确实是该多学习啊，其中有这么一句话“企业没有忠诚的员工，只有真实的需求”，讲的是确实不错，从而让我想起来企业的“企”字就非常的有学问，企是人去而止，一个企业如果没有了人那就没法去经营，其实经营企业就是经营人，相信这种说法已经得到了多数老板的认同。老板的工作就是如何选好人、管好人、用好人、留好人。如果这项工作做好了，老板的工作就越来越轻松。当然，企业也越做越顺利。     为什么老板给了员工那么高的薪水，那么好的职位，那么舒适的办公环境。就留不住员工呢?他们做得好好的，为什么辞职走人呢?这是多数老板难以解答的难题。老板想做大，员工想跳槽。企业总是在这种矛盾中生存和发展。因为没有员工的支持和帮助，老板再大的梦想也无法实现。所以老板为了成就自己伟大的梦想，他就必须设法留住优秀员工，让他们与自己一起创业，共同实现梦想。 </summary><published>2009-09-09T09:43:00Z</published><updated>2009-09-09T09:43:00Z</updated><author><name>小鱼儿</name><uri>http://www.cnblogs.com/jiayong/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jiayong/archive/2009/09/09/1563442.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jiayong/archive/2009/09/09/1563442.html"/></entry><entry><id>http://www.cnblogs.com/jiayong/archive/2009/07/30/1535183.html</id><title type="text">成为一名优秀程序员的三步曲</title><summary type="text">1) 以一种有效的方式学习一种编程语言。 2) 快速有效的调试你的代码。 3) 时刻不但学习的心态，保持知识的更新。</summary><published>2009-07-30T08:32:00Z</published><updated>2009-07-30T08:32:00Z</updated><author><name>小鱼儿</name><uri>http://www.cnblogs.com/jiayong/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jiayong/archive/2009/07/30/1535183.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jiayong/archive/2009/07/30/1535183.html"/></entry><entry><id>http://www.cnblogs.com/jiayong/articles/1510795.html</id><title type="text">C# 动态生成图片保存到文件</title><summary type="text">C# 动态生成图片保存到文件</summary><published>2009-06-25T03:05:00Z</published><updated>2009-06-25T03:05:00Z</updated><author><name>小鱼儿</name><uri>http://www.cnblogs.com/jiayong/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jiayong/articles/1510795.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jiayong/articles/1510795.html"/></entry><entry><id>http://www.cnblogs.com/jiayong/articles/1510752.html</id><title type="text">ASP.NET动态创建柱状图和饼图(vb,C#)</title><summary type="text">在应用程序开发中，我们会经常遇到把从数据源动态取回的数据用统计图表现出来，在Microsoft .NET Framework出现之前，我们采取的方法主要是编写组件来完成这一任务。现在，利用Microsoft .NET Framework提供的丰富的GDI+类和对象可以很轻松地实现这一功能。在本文中，我们就来看看在ASP.NET中如何动态创建常用的柱状图和饼图。数据源有许多种，在本文里我们就以数组来进行示例，但本例的方法很容易转换成数据库类型的数据源来进行。</summary><published>2009-06-25T02:32:00Z</published><updated>2009-06-25T02:32:00Z</updated><author><name>小鱼儿</name><uri>http://www.cnblogs.com/jiayong/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jiayong/articles/1510752.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jiayong/articles/1510752.html"/></entry><entry><id>http://www.cnblogs.com/jiayong/articles/1429000.html</id><title type="text">别制造半成品人生---克丽感悟</title><summary type="text">工作总是只做半成品,尽管这些事情看来都是不太重要，但是,如果一个人一生所有的事都做成半成品、或者即使有一半是半成品,,结果就是给自己一生的事业和生活制造成了半成品,也就是说,自己在不经意中给自己制造了半成品。</summary><published>2009-04-03T07:16:00Z</published><updated>2009-04-03T07:16:00Z</updated><author><name>小鱼儿</name><uri>http://www.cnblogs.com/jiayong/</uri></author><link rel="alternate" href="http://www.cnblogs.com/jiayong/articles/1429000.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/jiayong/articles/1429000.html"/></entry></feed>
