
面向对象编程有什么缺点
2013-06-22
展开全部
楼上恰恰说反了,面向过程的安全比面向对象差多了,函数间可以任意调用,没有任何编译级的限制。
个人觉得面向对象的缺点主要是在多态上,尤其是虚函数的引入,不仅使得执行效率上要差一些,而且也会使可执行文件变大。但是多态带来的编程可维护性上的效率足够弥补前面的缺陷,所以在选择上要有所取舍
个人觉得面向对象的缺点主要是在多态上,尤其是虚函数的引入,不仅使得执行效率上要差一些,而且也会使可执行文件变大。但是多态带来的编程可维护性上的效率足够弥补前面的缺陷,所以在选择上要有所取舍
2013-06-22
展开全部
将现实中某些具有相同基本特征的一组对象抽象为类,例如:人类、车类。在程序设计中Class为关键字。
每个类只是说明了此类对象所拥有的基本特性,但每个对象又是不完全相同的,例如男人和女人,但他们都属于人类。所以,这时候就有了继承的概念,即从人类这个大框架中衍生出的子类(女人类和男人类),前者称为基类后者称为衍生类。 继承类Inherits
但不同的人就是一个属于某个类的实际对象,例如张三是女人,那么张三属于女人类,也拥有人类的所有属性和方法。因为一个人就称为是一个类的对象实例
man x=new man();
这里x就是man类的一个实例,如果光使用man x;那么x指向man类的一个引用而不是实例。
每个人所能做的事情都不同,例如张三擅长于软件开发而李四擅长硬件开发,那么它们的方法就不同。再或者王五既能软件开发也会硬件开发,这就体现了面向对象中方法的重载和多态。 既它们虽然都具有同样的方法“擅长”,但其内部所做的事件不同。
当我们去看待一个人的时候我们总是看待这个人的总体,这就体现了封装。
每个类只是说明了此类对象所拥有的基本特性,但每个对象又是不完全相同的,例如男人和女人,但他们都属于人类。所以,这时候就有了继承的概念,即从人类这个大框架中衍生出的子类(女人类和男人类),前者称为基类后者称为衍生类。 继承类Inherits
但不同的人就是一个属于某个类的实际对象,例如张三是女人,那么张三属于女人类,也拥有人类的所有属性和方法。因为一个人就称为是一个类的对象实例
man x=new man();
这里x就是man类的一个实例,如果光使用man x;那么x指向man类的一个引用而不是实例。
每个人所能做的事情都不同,例如张三擅长于软件开发而李四擅长硬件开发,那么它们的方法就不同。再或者王五既能软件开发也会硬件开发,这就体现了面向对象中方法的重载和多态。 既它们虽然都具有同样的方法“擅长”,但其内部所做的事件不同。
当我们去看待一个人的时候我们总是看待这个人的总体,这就体现了封装。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-06-22
展开全部
百度:我用过dephi,也用过vb,说实在的dephi上手比较难,vb相对而言比较容易点,两种工具我用的时间也不是很长,不过有点体会:
1,delphi的控件比vb6.0多,相对而言,控件的功能也比vb6.0的强些。
2,就图表而言delphi的dbchart控件要比vb6.0中的强大多了,dbchart中的每一条线的序列可以直接对应到数据库中某一表的某一例的数据,只要帮定好,什么代码也不用写就可以画出曲线,还可以在设计时定义每一曲线的颜色等属性。
3,对于数据库的访问,delphi比vb6.0要支持得更好
不过,delphi的帮助比vb的差远了,查找问题很费时间,而且对于第三方控件的支持,vb要更好使一点,我曾经作一个工程,把工控软件的一个active控件导入到delphi出,编译不通过,而且控件出来也散了,没法用,在vb中用没有问题,微软毕竟是微软,技术后盾很强。
VB比较古老,最晚的版本VB6是98年出的(VB.NET则是另外的东西了)
而比较经典的Delphi5是99年出的,最晚的版本Delphi7是2002年出的
VB的后端编译器是用的C++的,本身的执行速度不会慢
可能慢的地方在于语言方面的局限性,比如没有二进制移位运算、不强制类型声明等~
功能方面,不能面向对象,不能多线程
只能写事件处理代码,可定制性比较差
1,delphi的控件比vb6.0多,相对而言,控件的功能也比vb6.0的强些。
2,就图表而言delphi的dbchart控件要比vb6.0中的强大多了,dbchart中的每一条线的序列可以直接对应到数据库中某一表的某一例的数据,只要帮定好,什么代码也不用写就可以画出曲线,还可以在设计时定义每一曲线的颜色等属性。
3,对于数据库的访问,delphi比vb6.0要支持得更好
不过,delphi的帮助比vb的差远了,查找问题很费时间,而且对于第三方控件的支持,vb要更好使一点,我曾经作一个工程,把工控软件的一个active控件导入到delphi出,编译不通过,而且控件出来也散了,没法用,在vb中用没有问题,微软毕竟是微软,技术后盾很强。
VB比较古老,最晚的版本VB6是98年出的(VB.NET则是另外的东西了)
而比较经典的Delphi5是99年出的,最晚的版本Delphi7是2002年出的
VB的后端编译器是用的C++的,本身的执行速度不会慢
可能慢的地方在于语言方面的局限性,比如没有二进制移位运算、不强制类型声明等~
功能方面,不能面向对象,不能多线程
只能写事件处理代码,可定制性比较差
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询