走近VB.Net(五) VB.Net核心概念
走近VB.Net(五) VB.Net核心概念
VB.Net中文教程在行文上有些重复太多甚至有些啰嗦,以至让人读得索然无味,但是,这个VB.Net中文教程确实是很难得甚至可以说是经典的VB.Net文章。说老实一点,除了读得累一些外,实在是比我写的好多少倍。第二个问题就是很多人谈到很惨,说一切要从头学起,其实所要你学的不过是一些简单的语法变化,最重要的是观念的改变,也就是思维方式的转向,也就是说在经过了最初的摸索以后,你在VB6(我是不懂VB6的,我只懂一些D(不是你想的那个D),没有面向对象成功,现在我决定学这个了)的功力一样会运用得酣畅淋漓。另外一些提到Beta版的问题,因为编程语言不同一般的软件,虽然是Beta,基本的语法已经定向,微软发布的的关于Beta2的文章中所涉及的主要是一些内部的组件的功能提高与Bug的修正,关键是VB6在让你用得很舒服的同时也为你进行了很大的局限性,而VB.Net正是突破这些局限,另外在前不久有一些不利的传言,这大部分是出现在VB.Net发布之前出现的。很多人甚至断言在VS.Net中不再有VB了。而现在恰恰相反。最早宣称VS.Net取材Java的一篇英文文章的作者在近期的撰文中声称更正以前的说法,他们只是要表面很象,而内部的是实现途径是完全不同的,因为我不是很懂这些,就不谈题外话了。所以对种种传言一定要是非分明,如果你不想落后,你必须学习新兴的东西,而你根本不必太过去关注一些太大的话题,例如将来VS.Net的通用语言库会不会运行于所有的平台,起码我只关心能不能做出好的windows程序,如果到了你必须关心这些大事的程度,这里所有的说明对于你的水平来说只是废话了。下面是我读VB.Net中文教程的一些评述,兼答复一些关于我的文章的问题
一。对象(Object)基本概念
我们且看如下一段:
原文如下“软件的对象是自然界对象的抽象表示”
原文如下“现在的「对象导向」(Object-Oriented) 观念﹐在软件开发时﹐甚至写程序时﹐对象(Object)成为脑海里的主角。当您看到程序时﹐心理充满着对象之影子和概念﹐函数和资料变成对象内之一部分﹐是配角而非主角了。程序设计之核心工作在于描述对象、组织对象、安排对象间之沟通(传递讯息)方式。就如同「人」是社会中的主要对象﹐社会是有组织的人群﹐人们之间会互相沟通、协调。”
对象的其本观念取材于社会,程序的组织抽象于社会的组织,从写软件到组织软件的形式就是进步
原文如下“由于软件中的对象观念和实际社会中的对象观念是一致的﹐所以 OOP观念使软件与实际世界间之距离缩短了。此为 OOP技术的重要特点之一。”
什么是OOP,一个软件工程包括操作系统就是一个微缩的社会群体。比如我们同路人打个招呼,只要打招呼就可以,你要关心的是亲疏的程度,怎样打招呼,而不必关心你的大脑如何接受这个信息,甚至如何发送这个信息,以及如何处理这个信息.
一个Namespce就是这样一个群体(族,我取的是抽象的意义,也就是网友说的“a group of thing with common features (族).当然你完全有理由叫他名称空间,名字空间,命名空间,名空间"。进而到族与族的关系,群体到群体的关系。
因此,
原文如下“例如﹕函数或程序导向之核心观念──函数﹐在一般人们的心目中﹐并非熟悉之概念﹐只在数学里学到之概念而已。因而让人对软件感到陌生。而在对象导向观念中﹐实际社会之对象﹐例如﹕人、汽车、股票、磁盘驱动器、帐单、房间、学生、教室等皆为软件设计师脑海中的对象﹐也是程序中的对象。因之﹐不论是老板或程序设计师来看程序﹐他们脑海中皆充满对象之影子﹐而这些个体皆为人们生活中﹐真正活生生的东西、实在之物体或大家耳熟能详之概念﹐使得软件之使用者和设计者有一致的心灵、共同之感觉﹐这让使用者对软件更满意﹐设计师更了解使用者之需要。”
也就是你作为一个人的对象想从一个位置到另外一个位置,如"S=I.tostring" ,我从I到S,I是在Integer,而S居于String.于是我过去了,从integer到string。而不必要关心他如何的过去。使用哪一个函数。
再看类别
原文如下"以上介绍的是常用之寻找对象方法﹐会寻找对象之后﹐就必需将对象分门别类﹐并且了解类别间之关系﹐以便把它们组织起来。例如﹐在公司的人事结构中﹐可发现人因扮演角色之不同而分为不同种类之对象﹐如推销员、司机、经理等等。汽车可分为跑车、巴士、旅行车等不同种类之对象。如何分类(Classification)﹐是OOP 之重要观念"
有网友拿我开玩笑,说namespace叫族,那么这个class叫班级,不知这个玩笑对我们倒是有些启发的,同样是类别,A班级与B班级到头都是学生的团体,也就是说不能形成一个类,而且学生毕业了,A班级会被C班级所取代,B班级以会被D班级所更替,所以他是有寿命的,而人类是一个类,学生是一个类,老师是一个类,这个是无寿命的。如form是一个类,form类是一直都在的,而formX在unload以后结束了, formX也就没有了
原文如下“例如﹐一个人从出生到老﹐不超过二百年﹐而「人类」则因对象生生不息而永远昌隆。在学校里﹐King老师会换工作而离开学校﹐但「老师」类别将永远存在。因之﹐个体及其所属的群体──类别﹐皆是 OOP之核心观念”
在看了以上一些引用后,你可能会想到,对于这些近于艺术化的解释,中文的表述还是比较好的
二。对象Whole-Part关系
原文如下“类别继承(Class inheritance)和对象组合(Object composition)是软件再使用(Reuse)的两易做图宝。类别继承就是建立父、子类别之关系﹔例如﹐「学生」可分为「大学生」、「中学生」和「小学生」三类别”
类别继承(Class inheritance)大概是人人都知道了,至于对象组合(Object composition)你把他理解为你自已写的一个族就很容易理解了,类通过建立子类成为族,虽然没有明确的这样定义,但是有助于理解,如system.drawing你可以理解为一个类,或者说类库也可以,同样因为含有子类,你也可以把system.drawing当作一个族名(namespace),这个子类与通过继承关系
得到的子类意思不同,这不难理解,形象的如下:
Class class1 Whole
Class class1-1 Part1
.......
end Class
Class class1-2 Part2
......
end Class
......
end Class
原文如下"对象组合的目的是﹕创造「复合对象」(Composite object)﹔例如﹐医院内含医师和护士等"
原文如下"继承与组合两易做图宝能联合使用﹐以组织庞大的软件系统"
1。原文如下“组合/部分关系﹐常称为APO(A part of)关系”
Class House 房子House是一个整体
Class Door 门Door是一个部分<
补充:软件开发 , Vb ,