本文目錄一覽:
面向對象可視化程序設計
「所見即所得」的編程思想為原則,力圖實現編程工作的可視化,即隨時可以看到結果,程序與結果的調整同步。
可視化編程是與傳統的編程方式相比而言的,這裡的「可視」,指的是無須編程,僅通過直觀的操作方式即可完成界面的設計工作,是目前最好的Windows應用程序開發工具。
可視化編程語言的特點主要表現在兩個方面:一是基於面向對象的思想,引入了控件的概念和事件驅動;二是程序開發過程一般遵循以下步驟,即先進行界面的繪製工作,再基於事件編寫程序代碼,以響應鼠標、鍵盤的各種動作。
可視化編程十問
1. 什麼是可視化程序設計?
可視化(Visual)程序設計是一種全新的程序設計方法,它主要是讓程序設計人員利用軟件本身所提供的各種控件,像搭積木式地構造應用程序的各種界面。
2. 可視化程序設計有哪些優點?
可視化程序設計最大的優點是設計人員可以不用編寫或只需編寫很少的程序代碼,就能完成應用程序的設計,這樣就能極大地提高設計人員的工作效率。
3. 能夠進行可視化程序設計的語言有哪些?
能進行可視化程序設計的語言很多,比較常用的有微軟的Visual Basic、Visual C++、中文Visual Foxpro、Borland公司的Delphi等。
4. 可視化程序設計中有哪些基本概念?
主要的幾個基本概念有表單、組件、屬性、事件、方法等。
5. 什麼是表單(Form)?
表單是指進行程序設計時的窗口,我們主要是通過在表單中放置各種部件(如命令按鈕、複選框、單選框、滾動條等)來布置應用程序的運行界面。
6. 什麼是組件?
所謂組件,就是組成程序運行界面的各種部件,如:命令按鈕、複選框、單選框、滾動條等。
7. 什麼是屬性?
屬性就是組件的性質。它說明組件在程序運行的過程中是如何顯示的、組件的大小是多少、顯示在何處、是否可見、是否有效……
8. 屬性可以分成哪幾類?
屬性可分成三類,設計屬性:是在進行設計時就可發揮作用的屬性;運行屬性:這是在程序運行過程中才發揮作用的屬性;只讀屬性:是一種只能查看而不能改變的屬性。
9. 什麼是事件?
事件就是對一個組件的操作。如用鼠標點擊一個命令按鈕,在這裡,點擊鼠標就稱為一個事件(Click事件)。
10. 什麼是方法?
方法就是某個事件發生後要執行的具體操作,類似以前的程序。例如當我們用鼠標單擊「退出」命令按鈕時,程序就會通過執行一條命令而結束運行,命令的執行過程就叫方法。
面向對象程序設計 1.歷史回顧
1967年挪威計算中心的Kisten Nygaard和Ole Johan Dahl開發了Simula67語言,它提供了比子程序更高一級的抽象和封裝,引入了數據抽象和類的概念,它被認為是第一個面向對象語言。20世紀70年代初,Palo Alto研究中心的Alan Kay所在的研究小組開發出Smalltalk語言,之後又開發出Smalltalk-80,Smalltalk-80被認為是最純正的面向對象語言,它對後來出現的面向對象語言,如Object-C,C++,Self,Eiffl都產生了深遠的影響。隨着面向對象語言的出現,面向對象程序設計也就應運而生且得到迅速發展。之後,面向對象不斷向其他階段滲透,1980年Grady Booch提出了面向對象設計的概念,之後面向對象分析開始。1985年,第一個商用面向對象數據庫問世。1990年以來,面向對象分析、測試、度量和管理等研究都得到長足發展。
實際上,「對象」和「對象的屬性」這樣的概念可以追溯到20世紀50年代初,它們首先出現於關於人工智能的早期著作中。但是出現了面向對象語言之後,面向對象思想才得到了迅速的發展。過去的幾十年中,程序設計語言對抽象機制的支持程度不斷提高:從機器語言到彙編語言,到高級語言,直到面向對象語言。彙編語言出現後,程序員就避免了直接使用0-1,而是利用符號來表示機器指令,從而更方便地編寫程序;當程序規模繼續增長的時候,出現了Fortran、C、Pascal等高級語言,這些高級語言使得編寫複雜的程序變得容易,程序員們可以更好地對付日益增加的複雜性。但是,如果軟件系統達到一定規模,即使應用結構化程序設計方法,局勢仍將變得不可控制。作為一種降低複雜性的工具,面向對象語言產生了,面向對象程序設計也隨之產生。
2.面向對象程序設計的基本概念
面向對象程序設計中的概念主要包括:對象、類、數據抽象、繼承、動態綁定、數據封裝、多態性、消息傳遞。通過這些概念面向對象的思想得到了具體的體現。
1)對象
對象是運行期的基本實體,它是一個封裝了數據和操作這些數據的代碼的邏輯實體。
2)類
類是具有相同類型的對象的抽象。一個對象所包含的所有數據和代碼可以通過類來構造。
3)封裝
封裝是將數據和代碼捆綁到一起,避免了外界的干擾和不確定性。對象的某些數據和代碼可以是私有的,不能被外界訪問,以此實現對數據和代碼不同級別的訪問權限。
4)繼承
繼承是讓某個類型的對象獲得另一個類型的對象的特徵。通過繼承可以實現代碼的重用:從已存在的類派生出的一個新類將自動具有原來那個類的特性,同時,它還可以擁有自己的新特性。
5)多態
多態是指不同事物具有不同表現形式的能力。多態機制使具有不同內部結構的對象可以共享相同的外部接口,通過這種方式減少代碼的複雜度。
6)動態綁定
綁定指的是將一個過程調用與相應代碼鏈接起來的行為。動態綁定是指與給定的過程調用相關聯的代碼只有在運行期才可知的一種綁定,它是多態實現的具體形式。
7)消息傳遞
對象之間需要相互溝通,溝通的途徑就是對象之間收發信息。消息內容包括接收消息的對象的標識,需要調用的函數的標識,以及必要的信息。消息傳遞的概念使得對現實世界的描述更容易。
3.面向對象語言
一個語言要稱為面向對象語言必須支持幾個主要面向對象的概念。根據支持程度的不同,通常所說的面向對象語言可以分成兩類:基於對象的語言,面向對象的語言。
基於對象的語言僅支持類和對象,而面向對象的語言支持的概念包括:類與對象、繼承、多態。舉例來說,Ada就是一個典型的基於對象的語言,因為它不支持繼承、多態,此外其他基於對象的語言還有Alphard、CLU、Euclid、Modula。面向對象的語言中一部分是新發明的語言,如Smalltalk、Java,這些語言本身往往吸取了其他語言的精華,而又盡量剔除他們的不足,因此面向對象的特徵特別明顯,充滿了蓬勃的生機;另外一些則是對現有的語言進行改造,增加面向對象的特徵演化而來的。如由Pascal發展而來的Object Pascal,由C發展而來的Objective-C,C++,由Ada發展而來的Ada 95等,這些語言保留着對原有語言的兼容,並不是純粹的面向對象語言,但由於其前身往往是有一定影響的語言,因此這些語言依然寶刀不老,在程序設計語言中佔有十分重要的地位。
4.面向對象程序設計的優點
面向對象出現以前,結構化程序設計是程序設計的主流,結構化程序設計又稱為面向過程的程序設計。在面向過程程序設計中,問題被看作一系列需要完成的任務,函數(在此泛指例程、函數、過程)用於完成這些任務,解決問題的焦點集中於函數。其中函數是面向過程的,即它關注如何根據規定的條件完成指定的任務。
在多函數程序中,許多重要的數據被放置在全局數據區,這樣它們可以被所有的函數訪問。每個函數都可以具有它們自己的局部數據。下圖顯示了一個面向過程程序中函數和數據的關係。
圖1 面向過程程序設計中函數和數據的關係示例
這種結構很容易造成全局數據在無意中被其他函數改動,因而程序的正確性不易保證。面向對象程序設計的出發點之一就是彌補面向過程程序設計中的一些缺點:對象是程序的基本元素,它將數據和操作緊密地連結在一起,並保護數據不會被外界的函數意外地改變。下圖顯示了一個面向對象程序中對象與函數和數據的關係。
圖2 面向對象程序設計中函數和數據的關係示例
比較面向對象程序設計和面向過程程序設計,還可以得到面向對象程序設計的其他優點:
1)數據抽象的概念可以在保持外部接口不變的情況下改變內部實現,從而減少甚至避免對外界的干擾;
2)通過繼承大幅減少冗餘的代碼,並可以方便地擴展現有代碼,提高編碼效率,也減低了出錯概率,降低軟件維護的難度;
3)結合面向對象分析、面向對象設計,允許將問題域中的對象直接映射到程序中,減少軟件開發過程中中間環節的轉換過程;
4)通過對對象的辨別、劃分可以將軟件系統分割為若干相對為獨立的部分,在一定程度上更便於控制軟件複雜度;
6)以對象為中心的設計可以幫助開發人員從靜態(屬性)和動態(方法)兩個方面把握問題,從而更好地實現系統;
7)通過對象的聚合、聯合可以在保證封裝與抽象的原則下實現對象在內在結構以及外在功能上的擴充,從而實現對象由低到高的升級。
面對對象的程序設計方法
在數據輸入模塊內部設計中,採用面向對象的設計方法。[6]面向對象的基本概念如下:
對象:對象是要研究的任何事物。從一本書到一家圖書館,單的整數到整數列龐大的數據庫、極其複雜的自動化工廠、穿梭機都可看作對象,它不僅能表示有形的實體,也能表示無形的(抽象的)規則、計劃或事件。對象由數據(描述事物的屬性)和作用於數據的操作(體現事物的行為)構成一獨立整體。從程序設計者來看,對象是一個程序模塊,從用戶來看,對象為他們提供所希望的行為。在對內的操作通常稱為方法。
類:類是對象的模板。即類是對一組有相同數據和相同操作的對象的定義,一個類所包含的方法和數據描述一組對象的共同屬性和行為。類是在對象之上的抽象,對象則是類的具體化,是類的實例。類可有其子類,也可有其它類,形成類層次結構。
消息:消息是對象之間進行通信的一種規格說明。一般它由三部分組成:接收消息的對象、消息名及實際變元。
面向對象主要特徵:
封裝性:封裝是一種信息隱蔽技術,它體現於類的說明,是對象的重要特性。封裝使數據和加工該數據的方法(函數)封裝為一個整體,以實現獨立性很強的模塊,使得用戶只能見到對象的外特性(對象能接受哪些消息,具有那些處理能力),而對象的內特性(保存內部狀態的私有數據和實現加工能力的算法)對用戶是隱蔽的。封裝的目的在於把對象的設計者和對象者的使用分開,使用者不必知曉行為實現的細節,只須用設計者提供的消息來訪問該對象。
繼承性:繼承性是子類自動共享父類之間數據和方法的機制。它由類的派生功能體現。一個類直接繼承其它類的全部描述,同時可修改和擴充。繼承具有傳遞性。繼承分為單繼承(一個子類只有一父類)和多重繼承(一個類有多個父類)。類的對象是各自封閉的,如果沒繼承性機制,則類對象中數據、方法就會出現大量重複。繼承不僅支持系統的可重用性,而且還促進系統的可擴充性。
多態性:對象根據所接收的消息而做出動作。同一消息為不同的對象接受時可產生完全不同的行動,這種現象稱為多態性。利用多態性用戶可發送一個通用的信息,而將所有的實現細節都留給接受消息的對象自行決定,如是,同一消息即可調用不同的方法。例如:Print消息被發送給一圖或表時調用的打印方法與將同樣的Print消息發送給一正文文件而調用的打印方法會完全不同。多態性的實現受到繼承性的支持,利用類繼承的層次關係,把具有通用功能的協議存放在類層次中儘可能高的地方,而將實現這一功能的不同方法置於較低層次,這樣,在這些低層次上生成的對象就能給通用消息以不同的響應。在OOPL中可通過在派生類中重定義基類函數(定義為重載函數或虛函數)來實現多態性。
綜上可知,在面對對象方法中,對象和傳遞消息分別表現事物及事物間相互聯繫的概念。類和繼承是是適應人們一般思維方式的描述範式。方法是允許作用於該類對象上的各種操作。這種對象、類、消息和方法的程序設計範式的基本點在於對象的封裝性和類的繼承性。通過封裝能將對象的定義和對象的實現分開,通過繼承能體現類與類之間的關係,以及由此帶來的動態聯編和實體的多態性,從而構成了面向對象的基本特徵。
面向對象設計是一種把面向對象的思想應用於軟件開發過程中,指導開發活動的系統方法,是建立在「對象」概念基礎上的方法學。對象是由數據和容許的操作組成的封裝體,與客觀實體有直接對應關係,一個對象類定義了具有相似性質的一組對象。而每繼承性是對具有層次關係的類的屬性和操作進行共享的一種方式。所謂面向對象就是基於對象概念,以對象為中心,以類和繼承為構造機制,來認識、理解、刻畫客觀世界和設計、構建相應的軟件系統。。按照Bjarne STroustRUP的說法,面向對象的編程範式:
l 決定你要的類;
2 給每個類提供完整的一組操作;
3 明確地使用繼承來表現共同點。
由這個定義,我們可以看出:面向對象設計就是「根據需求決定所需的類、類的操作以及類之間關聯的過程」。
面向對象設計方法的特點和面臨的問題
面向對象設計方法以對象為基礎,利用特定的軟件工具直接完成從對象客體的描述到軟件結構之間的轉換。這是面向對象設計方法最主要的特點和成就。面向對象設計方法的應用解決了傳統結構化開發方法中客觀世界描述工具與軟件結構的不一致性問題,縮短了開發周期,解決了從分析和設計到軟件模塊結構之間多次轉換映射的繁雜過程,是一種很有發展前途的系統開發方法。
但是同原型方法一樣, 面向對象設計方法需要一定的軟件基礎支持才可以應用,另外在大型的MIS開發中如果不經自頂向下的整體劃分,而是一開始就自底向上的採用面向對象設計方法開發系統,同樣也會造成系統結構不合理、各部分關係失調等問題。所以面向對象設計方法和結構化方法目前仍是兩種在系統開發領域相互依存的、不可替代的方法。
面向對象程序設計技術
可視化編程 可視化編程,亦即可視化程序設計:以「所見即所得」的編程思想為原則,力圖實現編程工作的可視化,即隨時可以看到結果,程序與結果的調整同步。 可視化編程是與傳統的編程方式相比而言的,這裡的「可視」,指的是無須編程,僅通過直觀的操作方式即可完成界面的設計工作,是目前最好的Windows應用程序開發工具。 可視化編程語言的特點主要表現在兩個方面:一是基於面向對象的思想,引入了控件的概念和事件驅動;二是程序開發過程一般遵循以下步驟,即先進行界面的繪製工作,再基於事件編寫程序代碼,以響應鼠標、鍵盤的各種動作。 可視化編程十問 1. 什麼是可視化程序設計? 可視化(Visual)程序設計是一種全新的程序設計方法,它主要是讓程序設計人員利用軟件本身所提供的各種控件,像搭積木式地構造應用程序的各種界面。 2. 可視化程序設計有哪些優點? 可視化程序設計最大的優點是設計人員可以不用編寫或只需編寫很少的程序代碼,就能完成應用程序的設計,這樣就能極大地提高設計人員的工作效率。 3. 能夠進行可視化程序設計的語言有哪些? 能進行可視化程序設計的語言很多,比較常用的有微軟的Visual Basic、Visual C++、中文Visual Foxpro、Borland公司的Delphi等。 4. 可視化程序設計中有哪些基本概念? 主要的幾個基本概念有表單、組件、屬性、事件、方法等。 5. 什麼是表單(Form)? 表單是指進行程序設計時的窗口,我們主要是通過在表單中放置各種部件(如命令按鈕、複選框、單選框、滾動條等)來布置應用程序的運行界面。 6. 什麼是組件? 所謂組件,就是組成程序運行界面的各種部件,如:命令按鈕、複選框、單選框、滾動條等。 7. 什麼是屬性? 屬性就是組件的性質。它說明組件在程序運行的過程中是如何顯示的、組件的大小是多少、顯示在何處、是否可見、是否有效…… 8. 屬性可以分成哪幾類? 屬性可分成三類,設計屬性:是在進行設計時就可發揮作用的屬性;運行屬性:這是在程序運行過程中才發揮作用的屬性;只讀屬性:是一種只能查看而不能改變的屬性。 9. 什麼是事件? 事件就是對一個組件的操作。如用鼠標點擊一個命令按鈕,在這裡,點擊鼠標就稱為一個事件(Click事件)。 10. 什麼是方法? 方法就是某個事件發生後要執行的具體操作,類似以前的程序。例如當我們用鼠標單擊「退出」命令按鈕時,程序就會通過執行一條命令而結束運行,命令的執行過程就叫方法。 面向對象程序設計 1.歷史回顧 1967年挪威計算中心的Kisten Nygaard和Ole Johan Dahl開發了Simula67語言,它提供了比子程序更高一級的抽象和封裝,引入了數據抽象和類的概念,它被認為是第一個面向對象語言。20世紀70年代初,Palo Alto研究中心的Alan Kay所在的研究小組開發出Smalltalk語言,之後又開發出Smalltalk-80,Smalltalk-80被認為是最純正的面向對象語言,它對後來出現的面向對象語言,如Object-C,C++,Self,Eiffl都產生了深遠的影響。隨着面向對象語言的出現,面向對象程序設計也就應運而生且得到迅速發展。之後,面向對象不斷向其他階段滲透,1980年Grady Booch提出了面向對象設計的概念,之後面向對象分析開始。1985年,第一個商用面向對象數據庫問世。1990年以來,面向對象分析、測試、度量和管理等研究都得到長足發展。 實際上,「對象」和「對象的屬性」這樣的概念可以追溯到20世紀50年代初,它們首先出現於關於人工智能的早期著作中。但是出現了面向對象語言之後,面向對象思想才得到了迅速的發展。過去的幾十年中,程序設計語言對抽象機制的支持程度不斷提高:從機器語言到彙編語言,到高級語言,直到面向對象語言。彙編語言出現後,程序員就避免了直接使用0-1,而是利用符號來表示機器指令,從而更方便地編寫程序;當程序規模繼續增長的時候,出現了Fortran、C、Pascal等高級語言,這些高級語言使得編寫複雜的程序變得容易,程序員們可以更好地對付日益增加的複雜性。但是,如果軟件系統達到一定規模,即使應用結構化程序設計方法,局勢仍將變得不可控制。作為一種降低複雜性的工具,面向對象語言產生了,面向對象程序設計也隨之產生。 2.面向對象程序設計的基本概念 面向對象程序設計中的概念主要包括:對象、類、數據抽象、繼承、動態綁定、數據封裝、多態性、消息傳遞。通過這些概念面向對象的思想得到了具體的體現。 1)對象 對象是運行期的基本實體,它是一個封裝了數據和操作這些數據的代碼的邏輯實體。 2)類 類是具有相同類型的對象的抽象。一個對象所包含的所有數據和代碼可以通過類來構造。 3)封裝 封裝是將數據和代碼捆綁到一起,避免了外界的干擾和不確定性。對象的某些數據和代碼可以是私有的,不能被外界訪問,以此實現對數據和代碼不同級別的訪問權限。 4)繼承 繼承是讓某個類型的對象獲得另一個類型的對象的特徵。通過繼承可以實現代碼的重用:從已存在的類派生出的一個新類將自動具有原來那個類的特性,同時,它還可以擁有自己的新特性。 5)多態 多態是指不同事物具有不同表現形式的能力。多態機制使具有不同內部結構的對象可以共享相同的外部接口,通過這種方式減少代碼的複雜度。 6)動態綁定 綁定指的是將一個過程調用與相應代碼鏈接起來的行為。動態綁定是指與給定的過程調用相關聯的代碼只有在運行期才可知的一種綁定,它是多態實現的具體形式。 7)消息傳遞 對象之間需要相互溝通,溝通的途徑就是對象之間收發信息。消息內容包括接收消息的對象的標識,需要調用的函數的標識,以及必要的信息。消息傳遞的概念使得對現實世界的描述更容易。 3.面向對象語言 一個語言要稱為面向對象語言必須支持幾個主要面向對象的概念。根據支持程度的不同,通常所說的面向對象語言可以分成兩類:基於對象的語言,面向對象的語言。 基於對象的語言僅支持類和對象,而面向對象的語言支持的概念包括:類與對象、繼承、多態。舉例來說,Ada就是一個典型的基於對象的語言,因為它不支持繼承、多態,此外其他基於對象的語言還有Alphard、CLU、Euclid、Modula。面向對象的語言中一部分是新發明的語言,如Smalltalk、Java,這些語言本身往往吸取了其他語言的精華,而又盡量剔除他們的不足,因此面向對象的特徵特別明顯,充滿了蓬勃的生機;另外一些則是對現有的語言進行改造,增加面向對象的特徵演化而來的。如由Pascal發展而來的Object Pascal,由C發展而來的Objective-C,C++,由Ada發展而來的Ada 95等,這些語言保留着對原有語言的兼容,並不是純粹的面向對象語言,但由於其前身往往是有一定影響的語言,因此這些語言依然寶刀不老,在程序設計語言中佔有十分重要的地位。 4.面向對象程序設計的優點 面向對象出現以前,結構化程序設計是程序設計的主流,結構化程序設計又稱為面向過程的程序設計。在面向過程程序設計中,問題被看作一系列需要完成的任務,函數(在此泛指例程、函數、過程)用於完成這些任務,解決問題的焦點集中於函數。其中函數是面向過程的,即它關注如何根據規定的條件完成指定的任務。 在多函數程序中,許多重要的數據被放置在全局數據區,這樣它們可以被所有的函數訪問。每個函數都可以具有它們自己的局部數據。下圖顯示了一個面向過程程序中函數和數據的關係。 圖1 面向過程程序設計中函數和數據的關係示例 這種結構很容易造成全局數據在無意中被其他函數改動,因而程序的正確性不易保證。面向對象程序設計的出發點之一就是彌補面向過程程序設計中的一些缺點:對象是程序的基本元素,它將數據和操作緊密地連結在一起,並保護數據不會被外界的函數意外地改變。下圖顯示了一個面向對象程序中對象與函數和數據的關係。 圖2 面向對象程序設計中函數和數據的關係示例 比較面向對象程序設計和面向過程程序設計,還可以得到面向對象程序設計的其他優點: 1)數據抽象的概念可以在保持外部接口不變的情況下改變內部實現,從而減少甚至避免對外界的干擾; 2)通過繼承大幅減少冗餘的代碼,並可以方便地擴展現有代碼,提高編碼效率,也減低了出錯概率,降低軟件維護的難度; 3)結合面向對象分析、面向對象設計,允許將問題域中的對象直接映射到程序中,減少軟件開發過程中中間環節的轉換過程; 4)通過對對象的辨別、劃分可以將軟件系統分割為若干相對為獨立的部分,在一定程度上更便於控制軟件複雜度; 6)以對象為中心的設計可以幫助開發人員從靜態(屬性)和動態(方法)兩個方面把握問題,從而更好地實現系統; 7)通過對象的聚合、聯合可以在保證封裝與抽象的原則下實現對象在內在結構以及外在功能上的擴充,從而實現對象由低到高的升級。 面對對象的程序設計方法 在數據輸入模塊內部設計中,採用面向對象的設計方法。[6]面向對象的基本概念如下: 對象:對象是要研究的任何事物。從一本書到一家圖書館,單的整數到整數列龐大的數據庫、極其複雜的自動化工廠、穿梭機都可看作對象,它不僅能表示有形的實體,也能表示無形的(抽象的)規則、計劃或事件。對象由數據(描述事物的屬性)和作用於數據的操作(體現事物的行為)構成一獨立整體。從程序設計者來看,對象是一個程序模塊,從用戶來看,對象為他們提供所希望的行為。在對內的操作通常稱為方法。 類:類是對象的模板。即類是對一組有相同數據和相同操作的對象的定義,一個類所包含的方法和數據描述一組對象的共同屬性和行為。類是在對象之上的抽象,對象則是類的具體化,是類的實例。類可有其子類,也可有其它類,形成類層次結構。 消息:消息是對象之間進行通信的一種規格說明。一般它由三部分組成:接收消息的對象、消息名及實際變元。 面向對象主要特徵: 封裝性:封裝是一種信息隱蔽技術,它體現於類的說明,是對象的重要特性。封裝使數據和加工該數據的方法(函數)封裝為一個整體,以實現獨立性很強的模塊,使得用戶只能見到對象的外特性(對象能接受哪些消息,具有那些處理能力),而對象的內特性(保存內部狀態的私有數據和實現加工能力的算法)對用戶是隱蔽的。封裝的目的在於把對象的設計者和對象者的使用分開,使用者不必知曉行為實現的細節,只須用設計者提供的消息來訪問該對象。 繼承性:繼承性是子類自動共享父類之間數據和方法的機制。它由類的派生功能體現。一個類直接繼承其它類的全部描述,同時可修改和擴充。繼承具有傳遞性。繼承分為單繼承(一個子類只有一父類)和多重繼承(一個類有多個父類)。類的對象是各自封閉的,如果沒繼承性機制,則類對象中數據、方法就會出現大量重複。繼承不僅支持系統的可重用性,而且還促進系統的可擴充性。 多態性:對象根據所接收的消息而做出動作。同一消息為不同的對象接受時可產生完全不同的行動,這種現象稱為多態性。利用多態性用戶可發送一個通用的信息,而將所有的實現細節都留給接受消息的對象自行決定,如是,同一消息即可調用不同的方法。例如:Print消息被發送給一圖或表時調用的打印方法與將同樣的Print消息發送給一正文文件而調用的打印方法會完全不同。多態性的實現受到繼承性的支持,利用類繼承的層次關係,把具有通用功能的協議存放在類層次中儘可能高的地方,而將實現這一功能的不同方法置於較低層次,這樣,在這些低層次上生成的對象就能給通用消息以不同的響應。在OOPL中可通過在派生類中重定義基類函數(定義為重載函數或虛函數)來實現多態性。 綜上可知,在面對對象方法中,對象和傳遞消息分別表現事物及事物間相互聯繫的概念。類和繼承是是適應人們一般思維方式的描述範式。方法是允許作用於該類對象上的各種操作。這種對象、類、消息和方法的程序設計範式的基本點在於對象的封裝性和類的繼承性。通過封裝能將對象的定義和對象的實現分開,通過繼承能體現類與類之間的關係,以及由此帶來的動態聯編和實體的多態性,從而構成了面向對象的基本特徵。 面向對象設計是一種把面向對象的思想應用於軟件開發過程中,指導開發活動的系統方法,是建立在「對象」概念基礎上的方法學。對象是由數據和容許的操作組成的封裝體,與客觀實體有直接對應關係,一個對象類定義了具有相似性質的一組對象。而每繼承性是對具有層次關係的類的屬性和操作進行共享的一種方式。所謂面向對象就是基於對象概念,以對象為中心,以類和繼承為構造機制,來認識、理解、刻畫客觀世界和設計、構建相應的軟件系統。。按照Bjarne STroustRUP的說法,面向對象的編程範式: l 決定你要的類; 2 給每個類提供完整的一組操作; 3 明確地使用繼承來表現共同點。 由這個定義,我們可以看出:面向對象設計就是「根據需求決定所需的類、類的操作以及類之間關聯的過程」。 面向對象設計方法的特點和面臨的問題 面向對象設計方法以對象為基礎,利用特定的軟件工具直接完成從對象客體的描述到軟件結構之間的轉換。這是面向對象設計方法最主要的特點和成就。面向對象設計方法的應用解決了傳統結構化開發方法中客觀世界描述工具與軟件結構的不一致性問題,縮短了開發周期,解決了從分析和設計到軟件模塊結構之間多次轉換映射的繁雜過程,是一種很有發展前途的系統開發方法。 但是同原型方法一樣, 面向對象設計方法需要一定的軟件基礎支持才可以應用,另外在大型的MIS開發中如果不經自頂向下的整體劃分,而是一開始就自底向上的採用面向對象設計方法開發系統,同樣也會造成系統結構不合理、各部分關係失調等問題。所以面向對象設計方法和結構化方法目前仍是兩種在系統開發領域相互依存的、不可替代的方法。
Js中什麼是對象,什麼是方法
什麼是對象
JavaScript 中的所有事物都是對象,如:字符串、數值、數組、函數等,每個對象帶有屬性和方法。
對象的屬性:反映該對象某些特定的性質的,如:字符串的長度、圖像的長寬等;
對象的方法:能夠在對象上執行的動作。例如,表單的「提交」(Submit),時間的「獲取」(getYear)等;
JavaScript 提供多個內建對象,比如 String、Date、Array 等等,使用對象前先定義,如下使用數組對象:
var objectName =new Array();//使用new關鍵字定義對象
或者
var objectName =[];
訪問對象屬性的語法:
objectName.propertyName
如使用 Array 對象的 length 屬性來獲得數組的長度:
var myarray=new Array(6);//定義數組對象
var myl=myarray.length;//訪問數組長度length屬性
以上代碼執行後,myl的值將是:6
訪問對象的方法:
objectName.methodName()
如使用string 對象的 toUpperCase() 方法來將文本轉換為大寫:
var mystr=”Hello world!”;//創建一個字符串
var request=mystr.toUpperCase(); //使用字符串對象方法
以上代碼執行後,request的值是:HELLO WORLD!
面向對象程序設計的設計方法
在數據輸入模塊內部設計中,採用面向對象的設計方法。[6]面向對象的基本概念如下:
對象:對象是要研究的任何事物。從一本書到一家圖書館,單的整數到整數列龐大的數據庫、極其複雜的自動化工廠、穿梭機都可看作對象,它不僅能表示有形的實體,也能表示無形的(抽象的)規則、計劃或事件。對象由數據(描述事物的屬性)和作用於數據的操作(體現事物的行為)構成一獨立整體。從程序設計者來看,對象是一個程序模塊,從用戶來看,對象為他們提供所希望的行為。在對內的操作通常稱為方法。
類:類是對象的模板。即類是對一組有相同屬性和相同操作的對象的定義,一個類所包含的方法和數據描述一組對象的共同屬性和行為。類是在對象之上的抽象,對象則是類的具體化,是類的實例。類可有其子類,也可有其它類,形成類層次結構。
消息:消息是對象之間進行通信的一種規格說明。一般它由三部分組成:接收消息的對象、消息名及實際變元。
面向對象主要特徵:
封裝性:封裝是一種信息隱蔽技術,它體現於類的說明,是對象的重要特性。封裝使數據和加工該數據的方法(函數)封裝為一個整體,以實現獨立性很強的模塊,使得用戶只能見到對象的外特性(對象能接受哪些消息,具有那些處理能力),而對象的內特性(保存內部狀態的私有數據和實現加工能力的算法)對用戶是隱蔽的。封裝的目的在於把對象的設計者和對象的使用者分開,使用者不必知曉行為實現的細節,只須用設計者提供的消息來訪問該對象。
繼承性:繼承性是子類自動共享父類之間數據和方法的機制。它由類的派生功能體現。一個類直接繼承其它類的全部描述,同時可修改和擴充。繼承具有傳遞性。繼承分為單繼承(一個子類只有一父類)和多重繼承(一個類有多個父類)。類的對象是各自封閉的,如果沒繼承性機制,則類對象中數據、方法就會出現大量重複。繼承不僅支持系統的可重用性,而且還促進系統的可擴充性。
多態性:對象根據所接收的消息而做出動作。同一消息為不同的對象接受時可產生完全不同的行動,這種現象稱為多態性。利用多態性用戶可發送一個通用的信息,而將所有的實現細節都留給接受消息的對象自行決定,如是,同一消息即可調用不同的方法。例如:Print消息被發送給一圖或表時調用的打印方法與將同樣的Print消息發送給一正文文件而調用的打印方法會完全不同。多態性的實現受到繼承性的支持,利用類繼承的層次關係,把具有通用功能的協議存放在類層次中儘可能高的地方,而將實現這一功能的不同方法置於較低層次,這樣,在這些低層次上生成的對象就能給通用消息以不同的響應。在OOPL中可通過在派生類中重定義基類函數(定義為重載函數或虛函數)來實現多態性。
綜上可知,在面對對象方法中,對象和傳遞消息分別表現事物及事物間相互聯繫的概念。類和繼承是是適應人們一般思維方式的描述範式。方法是允許作用於該類對象上的各種操作。這種對象、類、消息和方法的程序設計範式的基本點在於對象的封裝性和類的繼承性。通過封裝能將對象的定義和對象的實現分開,通過繼承能體現類與類之間的關係,以及由此帶來的動態聯編和實體的多態性,從而構成了面向對象的基本特徵。
面向對象設計是一種把面向對象的思想應用於軟件開發過程中,指導開發活動的系統方法,是建立在「對象」概念基礎上的方法學。對象是由數據和容許的操作組成的封裝體,與客觀實體有直接對應關係,一個對象類定義了具有相似性質的一組對象。而每繼承性是對具有層次關係的類的屬性和操作進行共享的一種方式。所謂面向對象就是基於對象概念,以對象為中心,以類和繼承為構造機制,來認識、理解、刻畫客觀世界和設計、構建相應的軟件系統。。按照Bjarne STroustRUP的說法,面向對象的編程範式:
l 決定你要的類;
2 給每個類提供完整的一組操作;
3 明確地使用繼承來表現共同點。
由這個定義,我們可以看出:面向對象設計就是「根據需求決定所需的類、類的操作以及類之間關聯的過程」。
求WEB前端開發學習路線
這裡整理了一份web前端學習路線的思維導圖以及需要掌握和學習的內容:
第一階段:專業核心基礎
階段目標:
1. 熟練掌握HTML5、CSS3、Less、Sass、響應書布局、移動端開發。
2. 熟練運用HTML+CSS特性完成頁面布局。
4. 熟練應用CSS3技術,動畫、彈性盒模型設計。
5. 熟練完成移動端頁面的設計。
6. 熟練運用所學知識仿製任意Web網站。
7. 能綜合運用所學知識完成網頁設計實戰。
知識點:
1、Web前端開發環境,HTML常用標籤,表單元素,Table布局,CSS樣式表,DIV+CSS布局。熟練運用HTML和CSS樣式屬性完成頁面的布局和美化,能夠仿製任意網站的前端頁面實現。
2、CSS3選擇器、偽類、過渡、變換、動畫、字體圖標、彈性盒模型、響應式布局、移動端。熟練運用CSS3來開發網頁、熟練開發移動端,整理網頁開發技巧。
3、預編譯css技術:less、sass基礎知識、以及插件的運用、BootStrap源碼分析。能夠熟練使用 less、sass完成項目開發,深入了解BootStrap。
4、使用HTML、CSS、LESS、SASS等技術完成網頁項目實戰。通過項目掌握第一階段html、css的內容、完成PC端頁面設計和移動端頁面設計。
第二階段:Web後台技術
階段目標:
1. 了解JavaScript的發展歷史、掌握Node環境搭建及npm使用。
2. 熟練掌握JavaScript的基本數據類型和變量的概念。
3. 熟練掌握JavaScript中的運算符使用。
4. 深入理解分支結構語句和循環語句。
5. 熟練使用數組來完成各種練習。
6.熟悉es6的語法、熟練掌握JavaScript面向對象編程。
7.DOM和BOM實戰練習和H5新特性和協議的學習。
知識點:
1、軟件開發流程、算法、變量、數據類型、分之語句、循環語句、數組和函數。熟練運用JavaScript的知識完成各種練習。
2、JavaScript面向對象基礎、異常處理機制、常見對象api,js的兼容性、ES6新特性。熟練掌握JavaScript面向對象的開發以及掌握es6中的重要內容。
3、BOM操作和DOM操作。熟練使用BOM的各種對象、熟練操作DOM的對象。
4、h5相關api、canvas、ajax、數據模擬、touch事件、mockjs。熟練使用所學知識來完成網站項目開發。
第三階段:數據庫和框架實戰
階段目標:
1. 綜合運用Web前端技術進行頁面布局與美化。
2. 綜合運用Web前端開發框架進行Web系統開發。
3. 熟練掌握Mysql、Mongodb數據庫的發開。
4. 熟練掌握vue.js、webpack、elementui等前端框技術。
5. 熟練運用Node.js開發後台應用程序。
6. 對Restful,Ajax,JSON,開發過程有深入的理解,掌握git的基本技能。
知識點:
1、數據庫知識,範式,MySQL配置,命令,建庫建表,數據的增刪改查,mongodb數據庫。深入理解數據庫管理系統通用知識及MySQL數據庫的使用與管理,為Node.js後台開發打下堅實基礎。
2、模塊系統,函數,路由,全局對象,文件系統,請求處理,Web模塊,Express框架,MySQL數據庫處理,RestfulAPI,文件上傳等。熟練運用Node.js運行環境和後台開發框架完成Web系統的後台開發。
3、vue的組件、生命周期、路由、組件、前端工程化、webpack、elementui框架。Vue.js框架的基本使用有清晰的理解,能夠運用Vue.js完成基礎前端開發、熟練運用Vue.js框架的高級功能完成Web前端開發和組件開發,對MVVM模式有深刻理解。
4、需求分析,數據庫設計,後台開發,使用vue、node完成pc和移動端整站開發。於Node.js+Vue.js+Webpack+Mysql+Mongodb+Git,實現整站項目完整功能並上線發佈。
第四階段:移動端和微信實戰
階段目標:
1.熟練掌握React.js框架,熟練使用React.js完成開發。
2.掌握移動端開發原理,理解原生開發和混合開發。
3.熟練使用react-native和Flutter框架完成移動端開發。
4.掌握微信小程序以及了解支付寶小程序的開發。
5.完成大型電商項目開發。
知識點:
1、React面向組件編程、表單數據、組件通信、監聽、生命周期、路由、Redux基本概念。練使用react完成項目開發、掌握Redux中的異步解決方案Saga。
2、react-native、開發工具、視圖與渲染、api操作、Flutter環境搭建、路由、ListView組件、網絡請求、打包。練掌握react-native和Flutter框架,並分別使用react-native和Flutter分別能開發移動端項目。
3、微信小程序基本介紹、開發工具、視圖與渲染、api操作、支付寶小程序的入門和api學習。掌握微信小程序開發了解支付寶小程序。
4、大型購物網站實戰,整個項目前後端分離開發;整個項目分為四部分:PC端網頁、移動端APP、小程序、後台管理。團隊協作開發,使用git進行版本控制。目期間可以擴展Three.js 、TypeScript。
相關配套視頻教程邀您移至B站搜索尚學堂,免費教程隨你挑!
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/159715.html