用VB作为大学计算机课程中面向对象程序设计的教学语言(再贴) 用VB作为大学计算机课程中面向对象程序设计的教学语言,大家认为如何?从VB的面向对象的特性考虑VB没有继承,重载和接口! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 严格的说VB并非面向对象,因为VB支持类但不支持继承,所以VB只能说基于对象。而且VB有太多的平台相关性,不能脱离Windows平台,而面向对象更多的是一个思想,不是一段代码一个程序的问题,我认为还是用一种完全的面向对象的语言比较好,甚至Delphy也好于VB 不同意楼上 vb是面向对象的只是你没有感觉到 它封装的很严但作为教学我认为还是应该用 c++ ,这样所有的基本概念都很清楚也好理解因为vb中的oop不很清晰 呵呵这是我正在写的程序项目:简单图形编辑系统作者:zyl910版本:V1.0 Coding更新:20040827设计原因~~~~~~~~这个程序主要是用来测试VB面向对象编程能力的。功能描述~~~~~~~~1、支持简单图形(直线、矩形、椭圆)的编辑2、能够修改画笔颜色、线型,能够修改刷子颜色(不允许改画笔的大小,不允许改变填充样式,这是为了简化图形点击测试)3、能够保存(*.sap)4、坐标单位是像素,不允许缩放5、1.0版不支持打印、不支持撤销!VB的面向对象编程~~~~~~~~~~~~~~~~不要以为VB没提供代码继承就认为面向对象编程能力不行,其实接口继承在某些时候还是很不错的。VB的多态性:1、通过接口继承实现多态性。速度较快,但需要继承接口,比较麻烦2、通过后期绑定实现多态性。速度较慢,但是用比较简单Is运算符:Obj1 Is Obj2:判断Obj1与Obj2是不是同一对象,同一对象的不同接口的Is结果为TrueTypeOf关键字:TypeOf obj Is Iobj:判断对象(obj)是否存在某种接口(Iobj)设计思想~~~~~~~~1、为了支持PointAPI、Rect等结构能在类中传输,将具体实现部分放在ActiveX DLL中。这样还有利于升级(只需要更新dll)2、由于直线、矩形、椭圆都是图形,所以它们都从IShape继承接口3、由于某些对象(直线)无法设置刷子,所以画笔、刷子修改需要分别继承IPen、IBrush接口4、为了实现流输入输出,提供IInStream、IOutStream接口(本来是想设计IStream单接口的,但后来觉得严格点好些)5、VB的文件操作功能才局限,本程序使用文件API读写文件。该操作封装CFile类,该类继承IInStream、IOutStream接口6、图形的绘制、点击测试由IShape提供7、控制点处理由CShapeWorld控制,控制点坐标由IShape提供-- zyl910公告(2004/8/28) ---------昨天突然打雷下雨导致计算机突然断电我那时正在上网今天雨才停拨号一看“没有拨号音”我在家里翻箱倒柜总算找到一个Modem了可惜是14.4kbps的上网速度很不爽所以这几天可能不会上网了(再过几天就开学了) VB是基于接口的面向对象编程不是传统的基于继承的面向对象编程看过林锐写的“高质量程序设计指南——C/C++语言”没有上面提到:就是因为C++的继承太有用、太容易用,所以经常被乱用依我来看:初学者学习面向对象编程不应从C++学起,这是由于C++太复杂了,容易被乱用。(听说初学者学习面向对象编程从Java开始比较好,但我没学过Java,不知道到底怎么样)虽然VB的基于接口的面向对象编程功能比较薄弱但是就是因为其薄弱没有C++那么复杂所以乱用的几率比较少,能更快的把握面向对象编程精神从另一个方面来说如果基于接口的面向对象编程真的那么差的话那么Microsoft的OLE/COM/DCOM/COM+/.Net能取得成功吗 vb不是面向对象的语言,而是基于对象的语言,因为它不具备面向对象的三个基本特征中的:继承。因此用vb作为大学计算机课程中面向对象程序设计的教学语言是不合适的,如果说面向的专业是计算机专业的话,我建议还是应该选择c++,而上机的话就使用vc;如果不是计算机专业的话,我认为学vb或Delphi比较适用,上手也快,不过不要刻意的去强调是面向对象的程序设计语言,就当它是到面向对象语言的一个过渡语言吧。 我感觉还是选择 清华大学出版社的《Visual C++ 面向对象与可视化程序设计》——黄维通编。我感觉这本很不错。 同意用java但我还是喜欢VB方便很多时候只是考虑如何实现业务至于内部是怎么运行的个人认为真的不重要 vb word文档书签内内容更新的问题 谁能教教我那几个OLE事件的用法? vb字符串连接 如何向某ASP发送信息 如何实现对程序的封装? 怎么模拟键盘的持续按键? 请问:用ROSE将VB程序导成一个模型时出现问题(IDE support for Visual Basic cannot be instantiated),如何解决? dbcombo控件的问题 为什么显示不了图象??(一个菜鸟的问题) 哪位大哥帮个忙。我是个新手! 请问怎么取出数据库的返回值,注意不是输入参数的值 奇怪的问题,大家帮忙看看!!
因为vb中的oop不很清晰
这是我正在写的程序项目:简单图形编辑系统
作者:zyl910
版本:V1.0 Coding
更新:20040827
设计原因
~~~~~~~~
这个程序主要是用来测试VB面向对象编程能力的。
功能描述
~~~~~~~~
1、支持简单图形(直线、矩形、椭圆)的编辑
2、能够修改画笔颜色、线型,能够修改刷子颜色(不允许改画笔的大小,不允许改变填充样式,这是为了简化图形点击测试)
3、能够保存(*.sap)
4、坐标单位是像素,不允许缩放
5、1.0版不支持打印、不支持撤销!
VB的面向对象编程
~~~~~~~~~~~~~~~~
不要以为VB没提供代码继承就认为面向对象编程能力不行,其实接口继承在某些时候还是很不错的。VB的多态性:
1、通过接口继承实现多态性。速度较快,但需要继承接口,比较麻烦
2、通过后期绑定实现多态性。速度较慢,但是用比较简单
Is运算符:
Obj1 Is Obj2:判断Obj1与Obj2是不是同一对象,同一对象的不同接口的Is结果为TrueTypeOf关键字:
TypeOf obj Is Iobj:判断对象(obj)是否存在某种接口(Iobj)设计思想
~~~~~~~~
1、为了支持PointAPI、Rect等结构能在类中传输,将具体实现部分放在ActiveX DLL中。这样还有利于升级(只需要更新dll)
2、由于直线、矩形、椭圆都是图形,所以它们都从IShape继承接口
3、由于某些对象(直线)无法设置刷子,所以画笔、刷子修改需要分别继承IPen、IBrush接口
4、为了实现流输入输出,提供IInStream、IOutStream接口(本来是想设计IStream单接口的,但后来觉得严格点好些)
5、VB的文件操作功能才局限,本程序使用文件API读写文件。该操作封装CFile类,该类继承IInStream、IOutStream接口
6、图形的绘制、点击测试由IShape提供
7、控制点处理由CShapeWorld控制,控制点坐标由IShape提供
-- zyl910公告(2004/8/28) ---------昨天突然打雷下雨
导致计算机突然断电
我那时正在上网今天雨才停
拨号一看
“没有拨号音”我在家里翻箱倒柜
总算找到一个Modem了
可惜是14.4kbps的
上网速度很不爽所以这几天可能不会上网了
(再过几天就开学了)
不是传统的基于继承的面向对象编程
看过林锐写的“高质量程序设计指南——C/C++语言”没有
上面提到:就是因为C++的继承太有用、太容易用,所以经常被乱用
依我来看:初学者学习面向对象编程不应从C++学起,这是由于C++太复杂了,容易被乱用。
(听说初学者学习面向对象编程从Java开始比较好,但我没学过Java,不知道到底怎么样)虽然VB的基于接口的面向对象编程功能比较薄弱
但是就是因为其薄弱没有C++那么复杂
所以乱用的几率比较少,能更快的把握面向对象编程精神从另一个方面来说
如果基于接口的面向对象编程真的那么差的话
那么Microsoft的OLE/COM/DCOM/COM+/.Net能取得成功吗
。我感觉这本很不错。
但我还是喜欢VB
方便
很多时候只是考虑如何实现业务
至于内部是怎么运行的
个人认为
真的不重要