C# 面对对象的学习
楼主原先学只会VB,后来因工作原因转用C#,发现了C#的种种好,但是对面对对象OOP完全没有概念(看来种种好还没体会上- -),虽然恶补了一阵子面向对象的基础知识,但是在实际编程时又自然的使用VB的编程方法,动不动的就static...完全没有OOP的使用习惯,如果勉强用反而搞得程式乱七八糟。各位看官们可能已经预想到我的下场了.
好吧,我在在一次面试中受尽了打击....
立贴为誓!今年年前一定深入了解面向对象,以及其使用技巧!再不济也得有对其其全面的认识!
发现网上的大部分教程都是教概念的,貌似没有讲解实际项目用法的啊?
前些天找到了一本书,叫戏说面向对象程序设计 写的很不错,先看这本书吧。 --------------------编程问答-------------------- --------------------编程问答-------------------- 先得找着对象 --------------------编程问答--------------------
至理名言啊 --------------------编程问答--------------------
程序员经常找不到对象
--------------------编程问答-------------------- --------------------编程问答-------------------- 还好我找对象找的早,想当年我还是小正太的时候跟女友开始处对象了,一直到现在。。。 --------------------编程问答-------------------- 程序员找不到对象
--------------------编程问答-------------------- 我给lz的建议是,多在实际的项目源代码和开发经历中体会软件设计之道。
从一个业余开发者到优秀的程序员,与其说是技术的高低,不如说是解决问题的视角发生了变化。
软件设计的目的在于,虽然使用了更复杂的技术,使用了更多的代码,使用了更精妙的设计,但是你极力向另一些开发者交付了可以重用的、调用简单的、稳定可靠的软件组件。业余开发者往往单兵作战,他之所以很难理解软件设计的目的和动机,主要是程序设计的全部都是他一人进行的,他的目标就是用户,甚至这个用户是他自己,他以实现最终的需求为第一目的。在这种情况下,他自然不能理解任何让软件变得复杂的改变。
而在一个专业的开发团队中,你编写代码的目的发生了根本的变化,你的用户可能不是最终使用软件的人,而是你的程序员同事,在这种情况下,你会去研究如何为他们提供可以调用的软件组件。不但这样的软件组件可以有很强的适用性,你更希望它使用起来不要太复杂,它的接口应该是优雅的。虽然你需要做一些苦活,但是收益是明显的,因为你的工作,是更多人工作的基石,你简化了程序的接口,提高了它的适用性,这些程序被成千上万次使用,就可以大大简化团队的劳动。
面向对象的本质在于多态和封装,这两条在实现我上面说的这样的需求方面是非常重要的,而且很好理解——封装性使得软件组件更加独立。当你从调用者的角度来看,封装性高的组件意味着他需要学习的接口更少,需要配置和调用的接口更简单,对软件组件外部环境的依赖性更低,使得软件的适用范围更广。
而多态也是如此,同样的概念,自动适配不同的具体实现,调用你程序的人所需要掌握的概念就更少。无论是用基类类型代替具体的实现类,还是用同一个操作符来表示多种类型的计算,或者是相同的排序和查找算法作用于不同类型的数据,都是如此。 --------------------编程问答--------------------
说的太好了,谢谢你的回答。看来得去个大公司才能真正的体会到你说的这些。。。。。 --------------------编程问答-------------------- 楼猪,你那个是真实的对象,二楼说的是虚拟的,别搞混,我想问下你女女真的从你小正太一直跟着你吗,真好啊,好好珍惜 --------------------编程问答-------------------- 理解面向对象的好处,重构入门
补充:.NET技术 , 非技术区