国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

走近VB.Net(五) VB.Net核心概念

2024-07-10 13:01:24
字體:
來源:轉載
供稿:網(wǎng)友
走近vb.net(五) vb.net核心概念
vb.net中文教程在行文上有些重復太多甚至有些啰嗦,以至讓人讀得索然無味,但是,這個vb.net中文教程確實是很難得甚至可以說是經(jīng)典的vb.net文章。說老實一點,除了讀得累一些外,實在是比我寫的好多少倍。第二個問題就是很多人談到很慘,說一切要從頭學起,其實所要你學的不過是一些簡單的語法變化,最重要的是觀念的改變,也就是思維方式的轉向,也就是說在經(jīng)過了最初的摸索以后,你在vb6(我是不懂vb6的,我只懂一些d(不是你想的那個d),沒有面向對象成功,現(xiàn)在我決定學這個了)的功力一樣會運用得酣暢淋漓。另外一些提到beta版的問題,因為編程語言不同一般的軟件,雖然是beta,基本的語法已經(jīng)定向,微軟發(fā)布的的關于beta2的文章中所涉及的主要是一些內部的組件的功能提高與bug的修正,關鍵是vb6在讓你用得很舒服的同時也為你進行了很大的局限性,而vb.net正是突破這些局限,另外在前不久有一些不利的傳言,這大部分是出現(xiàn)在vb.net發(fā)布之前出現(xiàn)的。很多人甚至斷言在vs.net中不再有vb了。而現(xiàn)在恰恰相反。最早宣稱vs.net取材java的一篇英文文章的作者在近期的撰文中聲稱更正以前的說法,他們只是要表面很象,而內部的是實現(xiàn)途徑是完全不同的,因為我不是很懂這些,就不談題外話了。所以對種種傳言一定要是非分明,如果你不想落后,你必須學習新興的東西,而你根本不必太過去關注一些太大的話題,例如將來vs.net的通用語言庫會不會運行于所有的平臺,起碼我只關心能不能做出好的windows程序,如果到了你必須關心這些大事的程度,這里所有的說明對于你的水平來說只是廢話了。下面是我讀vb.net中文教程的一些評述,兼答復一些關于我的文章的問題
一。對象(object)基本概念
我們且看如下一段:
原文如下“軟件的對象是自然界對象的抽象表示”
原文如下“現(xiàn)在的「對象導向」(object-oriented) 觀念﹐在軟件開發(fā)時﹐甚至寫程序時﹐對象(object)成為腦海里的主角。當您看到程序時﹐心理充滿著對象之影子和概念﹐函數(shù)和資料變成對象內之一部分﹐是配角而非主角了。程序設計之核心工作在于描述對象、組織對象、安排對象間之溝通(傳遞訊息)方式。就如同「人」是社會中的主要對象﹐社會是有組織的人群﹐人們之間會互相溝通、協(xié)調。”
對象的其本觀念取材于社會,程序的組織抽象于社會的組織,從寫軟件到組織軟件的形式就是進步
原文如下“由于軟件中的對象觀念和實際社會中的對象觀念是一致的﹐所以 oop觀念使軟件與實際世界間之距離縮短了。此為 oop技術的重要特點之一。”
什么是oop,一個軟件工程包括操作系統(tǒng)就是一個微縮的社會群體。比如我們同路人打個招呼,只要打招呼就可以,你要關心的是親疏的程度,怎樣打招呼,而不必關心你的大腦如何接受這個信息,甚至如何發(fā)送這個信息,以及如何處理這個信息.
一個namespce就是這樣一個群體(族,我取的是抽象的意義,也就是網(wǎng)友說的“a group of thing with common features (族).當然你完全有理由叫他名稱空間,名字空間,命名空間,名空間"。進而到族與族的關系,群體到群體的關系。
因此,
原文如下“例如﹕函數(shù)或程序導向之核心觀念──函數(shù)﹐在一般人們的心目中﹐并非熟悉之概念﹐只在數(shù)學里學到之概念而已。因而讓人對軟件感到陌生。而在對象導向觀念中﹐實際社會之對象﹐例如﹕人、汽車、股票、磁盤驅動器、帳單、房間、學生、教室等皆為軟件設計師腦海中的對象﹐也是程序中的對象。因之﹐不論是老板或程序設計師來看程序﹐他們腦海中皆充滿對象之影子﹐而這些個體皆為人們生活中﹐真正活生生的東西、實在之物體或大家耳熟能詳之概念﹐使得軟件之使用者和設計者有一致的心靈、共同之感覺﹐這讓使用者對軟件更滿意﹐設計師更了解使用者之需要。”
也就是你作為一個人的對象想從一個位置到另外一個位置,如"s=i.tostring" ,我從i到s,i是在integer,而s居于string.于是我過去了,從integer到string。而不必要關心他如何的過去。使用哪一個函數(shù)。
再看類別
原文如下"以上介紹的是常用之尋找對象方法﹐會尋找對象之后﹐就必需將對象分門別類﹐并且了解類別間之關系﹐以便把它們組織起來。例如﹐在公司的人事結構中﹐可發(fā)現(xiàn)人因扮演角色之不同而分為不同種類之對象﹐如推銷員、司機、經(jīng)理等等。汽車可分為跑車、巴士、旅行車等不同種類之對象。如何分類(classification)﹐是oop 之重要觀念"
有網(wǎng)友拿我開玩笑,說namespace叫族,那么這個class叫班級,不知這個玩笑對我們倒是有些啟發(fā)的,同樣是類別,a班級與b班級到頭都是學生的團體,也就是說不能形成一個類,而且學生畢業(yè)了,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
原文如下"對象組合的目的是﹕創(chuàng)造「復合對象」(composite object)﹔例如﹐醫(yī)院內含醫(yī)師和護士等"
原文如下"繼承與組合兩大法寶能聯(lián)合使用﹐以組織龐大的軟件系統(tǒng)"
1。原文如下“組合/部分關系﹐常稱為apo(a part of)關系”
class house 房子house是一個整體
class door 門door是一個部分
。。。。。。
end class

class window 窗window是一個部分
。。。。。。
end class
。。。。。。。
end class
原文如下“house 之對象誕生后﹐立即誕生內含之door對象和window對象”
所謂誕生對象就是聲明一個實例,如 dim xxx as new hourse(房子)
原文如下“組合對象與部分對象的壽命應該是一致的”
2。 原文如下“司機不是汽車的零件﹐客人亦非巴士之組件﹐所以汽車與司機之間并非「組合/部分」關系﹔然而﹐汽車的確包含著司機﹐因之稱為「包含者/內容」(container-contents)關系。”
這個是一個平行的關系,如:
class i(司機)
dim x as string
.......
end class
class h(汽車)
dim myi as new i
myi.x.......
......
end class
現(xiàn)在i沒錢了,要到h的公司里打工(dim myi as new i),i的數(shù)據(jù)x(dim x as string)只好交給myi.x為h服務,所以哪天環(huán)境變了,也可以反過來,h為i打工。所以是一個客體了。
所以,原文如下:“司機和汽車為獨立之對象﹐不像引擎一直包含于汽車內﹔于駕駛汽車時﹐司機才被包含于汽車內。顯然地﹐司機與汽車之壽命不一樣長。”
3。原文如下:“集合意謂著「團體」(group) ﹐由其成員(member)組成的群體。例如﹐學校里的社團內有團員﹔公司的銷售部含有推銷人員。這團體并不像汽車實際包含著司機﹐而只是其成員之集合而已。這情形﹐統(tǒng)稱為「集合/成員」(collection-members)關系”
也就是說在「包含者/內容」中包含者是容器,而在「集合/成員」中集合并不是容器
原文如下“不需明確劃分「包含者/內容」和「集合/成員」兩種關系”
那么,成員與內容有什么不同呢,準確的說,內容是一個對象,而成員是對象的集合,而這個對象的集合又被被含在整體中,而且認為這個成員即可以是外來的,又可以是本來就有的。就好比公司的成員即可以是外面請來的,又可以是內招的。這個意思有些象列表框,列表框的列表項可以是本來就有的,又可以不停的添加進來。「包含者/內容」(container-contents)是跑單幫,這個就是有組織的了。包含者更象一個容器,而集合反而成為對象。這就成了「包含者/集合/成員」,如果內容是一個變量,集合就是一個數(shù)組。
class person(成員對象--個人)
。。。。。。
end class
class club(集合對象--俱樂部)
。。。。。。
private pa as arraylist = new arraylist() (建立了一個集合arraylist類,這個類的方法有add ;remove等)
public sub join(byval p as person)(byval p as person起到了類似dim p as person的作用,引進了一個“內容”)
pa.add(p) (把"內容"添加到一個"集合")
end sub
end class

三.關于封裝性
所謂封裝性就是在類與類之間設定合法之存取規(guī)律
public 關鍵字指定在類與類之間是公用的
protected 關鍵字指定在同一個類(族)之間是公用的,包括他的子類
原文如下“指定某些資料為家族公用﹐亦即只有子孫類別內之程序可取用﹐非子孫類別之程序必須呼叫家族內之程序代為存取。”
細心的讀者可能已注意到這里已經(jīng)使用了“ 家族”的說法,印證了族的定義。
private 關鍵字指定是私有的,不能外部存取,也不能在族內共享,只能在他自已的空間活動了。
如果想訪問private的對象,只有使用set;get寫一個接口,或者使用這個對象內的子過程或函數(shù)去執(zhí)行了,當然你要加上public在sub或function前面了。

四.父子對象關系(繼承關系),母子對象關系(whole-part關系)
我突然不想寫了,大家可別生氣,如果想了解更多,還是去看人家的教程吧,我專挑一些容易的看,可不要學我,這樣難免斷章取義(是不好的)。另外各位要是看出錯誤來就請指證,這個反正大家是探討。如果有想罵的,最好到我的論壇去發(fā)泄一下(人少),好歹給兄弟一些面子。最好是看得生氣了,以至于水平很好又不喜歡寫文章的氣得寫vb.net了,英文很好又不喜歡翻譯的氣得去翻譯vb.net了,我們這一大群“文忙”就有福了(不需要再看我這些劣質文章了)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 峨眉山市| 定远县| 扎鲁特旗| 蒲城县| 贵港市| 恭城| 武隆县| 乐昌市| 湄潭县| 宁南县| 包头市| 囊谦县| 哈巴河县| 霍林郭勒市| 无锡市| 漳浦县| 齐河县| 肥城市| 攀枝花市| 泾阳县| 玉树县| 南乐县| 鲁山县| 长治市| 浦江县| 江油市| 嘉善县| 宁乡县| 行唐县| 江门市| 射阳县| 佛冈县| 景东| 乌兰浩特市| 贺州市| 文昌市| 伽师县| 沅江市| 自治县| 本溪市| 汤阴县|