我对OOP的理解非常有限. 我已经在.Net中编程了一年左右,但我完全是自学成才,所以我对OOP细节的一些使用感到失望. 封装,继承,抽象等我知道它们的含义(表面上看),但它们的用途是什么?
我已经在.Net中编程了一年左右,但我完全是自学成才,所以我对OOP细节的一些使用感到失望.
封装,继承,抽象等我知道它们的含义(表面上看),但它们的用途是什么?
我只使用OOP将可重用代码放入方法中,但我知道我错过了很多功能.
甚至班级 – 我只做了两到三次实际班级.相反,我通常只使用MainForm包含所有方法.
在StackOverflow答案中,OOP过于复杂,但主要内容如下:程序编程是关于编写对数据执行操作的代码.面向对象的编程是关于创建对自身执行操作的数据.
在过程编程中,您有函数并且您拥有数据.数据是结构化的但是被动的,您可以编写对数据和资源执行操作的函数.
在面向对象的编程中,数据和资源由具有属性和方法的对象表示.在这里,数据不再是被动的:方法是指示数据或资源对自身执行某些操作的手段.
这种区别很重要的原因是在程序编程中,任何数据都可以由程序的任何部分以任意方式进行检查或修改.您必须注意触摸相同数据的不同功能之间的意外交互,如果您选择更改数据的存储或组织方式,则必须修改大量代码.
但是在面向对象的编程中,当正确使用封装时,除了对象内部之外的任何代码都不需要知道(因此不会依赖于)数据对象如何存储其属性或自我变异.这有助于模块化您的代码,因为每个对象现在都有一个定义良好的接口,只要它继续支持该接口和其他对象以及通过该接口使用它的自由函数,就可以无风险地修改内部工作.
此外,对象的概念以及继承和组合的使用允许您在代码中以结构方式对数据建模.如果需要包含代表员工的数据,则需要创建Employee类.如果需要使用打印机资源,则需要创建一个Printer类.如果需要在对话框上绘制按钮,则可以创建Button类.这样,您不仅可以实现更大的模块化,而且您的模块反映了您的程序应该使用的任何实际事物的有用模型.