




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、JavaJava語言程序設(shè)計教程語言程序設(shè)計教程 趙海廷編著趙海廷編著12021-10-25第第1 1章章 面向?qū)ο笏枷肱c面向?qū)ο笏枷肱cJavaJava運(yùn)行環(huán)境簡介運(yùn)行環(huán)境簡介 本章將介紹面向?qū)ο蟮乃枷牒头椒?,面向?qū)ο蟪绦蛟O(shè)計的概念,對象的屬性與相互關(guān)系,面向?qū)ο蟪绦蛟O(shè)計的特點(diǎn),面向?qū)ο笙到y(tǒng)的開發(fā)過程,命令提示符下Java 程序的開發(fā)及NetBeans 6.0的下載與安裝等。1.1.1 面向?qū)ο蠓椒ㄊ且环N認(rèn)知方法面向?qū)ο蠓椒ㄊ且环N認(rèn)知方法其一是從一般到特殊的演繹方法。 其二是從特殊到一般的歸納方法。 面向?qū)ο蠓椒嫦驅(qū)ο蠓椒ㄌ峁┝藦囊话愕教厥獾难堇[方法演繹方法,又提供了從特殊到一般的歸納方法歸
2、納方法。這種分類、歸納的方法在面向?qū)ο蟪绦蛟O(shè)計技術(shù)中是非常有用的,是一種很好的認(rèn)知方法。1.1 面向?qū)ο蟮乃枷牒头椒嫦驅(qū)ο蟮乃枷牒头椒↗avaJava語言程序設(shè)計教程語言程序設(shè)計教程 趙海廷編著趙海廷編著22021-10-251.1.2 面向?qū)ο笈c面向過程語言的比較面向?qū)ο笈c面向過程語言的比較 程序設(shè)計語言可大致分為兩類:面向過程的程序設(shè)計語言和面向?qū)ο蟮某绦蛟O(shè)計語言。 它們之間可以從如下四個方面進(jìn)行比較:它們之間可以從如下四個方面進(jìn)行比較: 在面向過程的結(jié)構(gòu)化程序設(shè)計中,模塊是對功能的抽象,每個模塊就是一個處理單位,它具有一定的輸入、輸出。而在面向?qū)ο蟮某绦蛟O(shè)計中,對象是包括數(shù)據(jù)和操作方法
3、的整體,是數(shù)據(jù)和功能的抽象和統(tǒng)一。也可以這樣說:對象包含了模塊。 在面向過程的結(jié)構(gòu)化程序設(shè)計中,過程是一個獨(dú)立的實(shí)體,顯式地為它的使用者所見,而且,對于相同的輸入?yún)?shù),在每次的調(diào)用中,其輸出結(jié)果都是相同的。而在面向?qū)ο蟮某绦蛟O(shè)計中,方法屬于對象,它不是獨(dú)立存在的實(shí)體,而是對象功能的體現(xiàn)。 JavaJava語言程序設(shè)計教程語言程序設(shè)計教程 趙海廷編著趙海廷編著32021-10-25 類型是數(shù)據(jù)的抽象,即定義了一組具有共同特征的數(shù)據(jù)以及可以操作這些數(shù)據(jù)的一組函數(shù);但類所定義的數(shù)據(jù)集但類所定義的數(shù)據(jù)集(包括數(shù)據(jù)和方法)比面向過程語言類型定義的數(shù)據(jù)集要復(fù)雜得多。在面向過程的結(jié)構(gòu)化程序設(shè)計方法中,其核心
4、是逐步細(xì)化。這種自頂向下的設(shè)計方法是通過不斷地在控制結(jié)構(gòu)中增加細(xì)節(jié)來開發(fā)系統(tǒng)程序,它產(chǎn)生的模塊往往為了滿足特定的需要,其可重用性較差。 面向?qū)ο蟪绦蛟O(shè)計語言系統(tǒng)設(shè)計的方法以數(shù)據(jù)為核心來開發(fā)模塊,同時一體化地考慮所有操作功能,抓住了程序設(shè)計中最不易變化的部分- -數(shù)據(jù),因此對象常具有良好的可重用性,而且,類還引入了類的繼承機(jī)制,有較好的可擴(kuò)充性。JavaJava語言程序設(shè)計教程語言程序設(shè)計教程 趙海廷編著趙海廷編著42021-10-251.1.3 面向?qū)ο蠓椒ㄅc軟件的集成面向?qū)ο蠓椒ㄅc軟件的集成 在軟件工程中,為了提高軟件的生產(chǎn)效率,需要走類似硬件生產(chǎn)的道路,也就是軟件生產(chǎn)要走“集成電路”的道路
5、,也可稱為軟件IC。 軟件軟件IC應(yīng)具備如下特征:應(yīng)具備如下特征: 模塊性好、獨(dú)立性強(qiáng):一個軟件IC應(yīng)該是可以獨(dú)立存在的實(shí)體,應(yīng)該不受或少受外界的影響,以便于能夠較為自由地為各個不同的軟件系統(tǒng)所應(yīng)用。 通用性和可靠性好:軟件IC是用于構(gòu)造新的軟件系統(tǒng)的基本元件,因此必須保證它具有很好的通用性和可靠性。 連接簡單、使用方便:為了方便并安全地構(gòu)建新的軟件系統(tǒng),要求軟件IC之間連接要簡單,使用起來更要方便。 JavaJava語言程序設(shè)計教程語言程序設(shè)計教程 趙海廷編著趙海廷編著52021-10-25 具有封裝功能:軟件IC可以使用戶不必搞清它內(nèi)部的細(xì)節(jié),就能使用它。軟件IC內(nèi)部能否實(shí)現(xiàn)代碼的重用將直
6、接影響軟件系統(tǒng)的性能,因此還要具有繼承機(jī)制。 類是構(gòu)建同類對象的模板,滿足了重用性的要求,類的繼承機(jī)制滿足了軟件的可擴(kuò)展性,每個對象的相互獨(dú)立使它們之間連接方便??傊嫦?qū)ο蟪绦蛟O(shè)計語言的類及其對象完全可以滿足軟件IC的所有的要求。1.2 面向?qū)ο蟪绦蛟O(shè)計的概念面向?qū)ο蟪绦蛟O(shè)計的概念1.2.1 對象對象(Object) 在面向?qū)ο蟮木幊趟枷胫?,可以這樣定義對象:對象就是對象就是現(xiàn)實(shí)世界中某個具體物理實(shí)體在計算機(jī)邏輯中的映射和體現(xiàn)現(xiàn)實(shí)世界中某個具體物理實(shí)體在計算機(jī)邏輯中的映射和體現(xiàn)。 JavaJava語言程序設(shè)計教程語言程序設(shè)計教程 趙海廷編著趙海廷編著62021-10-25 使用軟件對象來表
7、示現(xiàn)實(shí)世界的物體。 例如,可以將現(xiàn)實(shí)世界中的狗表示為動畫程序中的軟件對象,也可以將現(xiàn)實(shí)世界中的汽車表示為一個虛擬訓(xùn)練汽車駕駛中的一個軟件對象。 此外,還可以使用軟件對象來模型化抽象的概念,例如:在視窗系統(tǒng)中的一個事件(event)可以用來表示用戶按下鼠標(biāo)按鈕的這一動作。 軟件對象的每一個事態(tài)(狀態(tài))和所能做的每一件事情(行為),都是通過該對象中的變量和方法(過程)來表示和描述。 這些變量和方法被稱為實(shí)例變量和實(shí)例方法,以區(qū)別類變量和類方法。 JavaJava語言程序設(shè)計教程語言程序設(shè)計教程 趙海廷編著趙海廷編著72021-10-25 在許多程序設(shè)計語言中,一個對象能夠選擇暴露它的變量給其它的對
8、象,允許其它的對象窺視、甚至修改該變量。 與此相反,一個對象也可以隱藏某些方法,使其它對象不可見,禁止其它對象調(diào)用這些方法。一個對象對于其它對象是否能夠存取它的變量,訪問它的方法具有完全的控制權(quán),它還可以指定哪些對象可以進(jìn)行存取訪問。 將相關(guān)的變量和方法封裝在一個軟件包裝中,這是一個簡單而又很好的方法,它為軟件開發(fā)者提供了兩個好處: 其一是模塊性,一個對象源代碼的編寫和維護(hù)與其它的源代碼是完全獨(dú)立的。 其二是信息的隱藏性,對象包含公用接口,其它的對象能夠使用這個接口與該對象進(jìn)行溝通,另一方面,對象還可以維護(hù)其私有信息和方法,而且它們可以任意改變而不影響那些依賴于某個對象的對象。JavaJava
9、語言程序設(shè)計教程語言程序設(shè)計教程 趙海廷編著趙海廷編著82021-10-251.2.2 消息(消息(Message) 消息是一個對象向其它對象發(fā)出執(zhí)行某個操作的信息,消息是一個對象向其它對象發(fā)出執(zhí)行某個操作的信息,是對象之間進(jìn)行交互的手段是對象之間進(jìn)行交互的手段。 一個消息一般包含三個部分:消息的目的對象(如:你的自行車);執(zhí)行的方法名稱(如:換檔);方法需要的參數(shù)(如:第三檔)。這三個部分為接收消息的對象提供了足夠的信息,其它的信息可以不需要。 一個對象的行為通過它的方法來表達(dá),因此,消息的傳遞支持了對象之間所有可能的交互作用。 JavaJava語言程序設(shè)計教程語言程序設(shè)計教程 趙海廷編著趙
10、海廷編著92021-10-251.2.3 類(類(Class) 類是一個設(shè)計方案或是一個原型,它定義了對于某一特類是一個設(shè)計方案或是一個原型,它定義了對于某一特定類型的所有對象共同具有的數(shù)據(jù)和方法定類型的所有對象共同具有的數(shù)據(jù)和方法。 對象和類的描述看起來非常相似,但是它們有很大的不同。類只是表示一類對象的抽象,而非對象的本身;對象則是實(shí)際存在的、可以使用的實(shí)體。 對象提供了模塊化和信息隱藏的好處,而類則提供了可以重復(fù)使用的便利。 1.2.4 繼承(繼承(Inheritance) 類的繼承就是新的類從已有類那里類的繼承就是新的類從已有類那里“獲得獲得”已有的狀已有的狀態(tài)和行為態(tài)和行為。從另一角
11、度來看這個問題,已有類產(chǎn)生新類的過程就是類的派生。已有的類稱之為父類或基類,新產(chǎn)生的類稱為子類或派生類。JavaJava語言程序設(shè)計教程語言程序設(shè)計教程 趙海廷編著趙海廷編著102021-10-251.2.5 多態(tài)性多態(tài)性(Polymorphism)多態(tài)性就是一個名字,多種語義,或是相同的界面,多種實(shí)現(xiàn)多態(tài)性就是一個名字,多種語義,或是相同的界面,多種實(shí)現(xiàn)。 重載重載表達(dá)了簡單的多態(tài)性,使用較多的是方法的重載。方法重載是多個方法具有相同的方法名字,但是其方法參數(shù)的個數(shù)或參數(shù)的類型要不相同。 編譯系統(tǒng)根據(jù)參數(shù)的不同可以在編譯階段就能確定應(yīng)該調(diào)用哪個方法體,這種情況稱為早期匹配或早期綁定(earl
12、y binding),也稱為靜態(tài)多態(tài); 而在程序運(yùn)行時才能確定具體方法體的稱為晚期匹配或晚期綁定(lately binding),也稱為動態(tài)多態(tài)。一般來說,早期匹配運(yùn)行速度比較快,晚期匹配提供了靈活性和高度的問題抽象。 JavaJava語言程序設(shè)計教程語言程序設(shè)計教程 趙海廷編著趙海廷編著112021-10-25 函數(shù)重載強(qiáng)調(diào)的是函數(shù)名相同,函數(shù)參數(shù)的不同。C+中虛函數(shù)則強(qiáng)調(diào)的是單個界面和多個實(shí)現(xiàn)的版本,也就是函數(shù)名、函數(shù)參數(shù)的類型、順序和個數(shù)都相同,但函數(shù)體卻完全不同。這在系統(tǒng)編譯過程中是無法確定的,只有系統(tǒng)在運(yùn)行時動態(tài)地尋找所需要的函數(shù)體進(jìn)行匹配。 Java語言除了具有方法重載多態(tài)之外,還
13、具有用于實(shí)現(xiàn)動態(tài)多態(tài)的覆蓋技術(shù),較好地解決了面向?qū)ο笳Z言對多態(tài)性方面的要求。 從JDK1.5起,Java提供了類型參數(shù)化技術(shù),也就是“泛型”。泛型為類的類型參數(shù)化提供了有效的支持,也使得應(yīng)用更加安全。 JavaJava語言程序設(shè)計教程語言程序設(shè)計教程 趙海廷編著趙海廷編著122021-10-251.3 1.3 對象的屬性與相互關(guān)系對象的屬性與相互關(guān)系1.3.1 對象的屬性對象的屬性 對象的狀態(tài)和行為是對象的重要屬性。對象的狀態(tài)又稱為對象的靜態(tài)屬性,主要指對象內(nèi)部所包含的各種信息,也就是變量。 對象的行為是對象的第二個屬性,也稱為對象的操作或方法,它主要表示對象的動態(tài)屬性,方法的作用是設(shè)置或改變
14、對象的狀態(tài)。 對象的狀態(tài)在類中用成員變量表示,而對象的行為在類中用成員方法來實(shí)現(xiàn)。 JavaJava語言程序設(shè)計教程語言程序設(shè)計教程 趙海廷編著趙海廷編著132021-10-251.3.2 對象的相互關(guān)系對象的相互關(guān)系 當(dāng)對象當(dāng)對象A是對象是對象B的屬性時,稱為對象的屬性時,稱為對象B包容對象包容對象A,這種,這種關(guān)系就是包容關(guān)系關(guān)系就是包容關(guān)系。 當(dāng)對象當(dāng)對象A是對象是對象B的特例時,稱對象的特例時,稱對象A繼承了對象繼承了對象B,這,這種關(guān)系就是繼承關(guān)系種關(guān)系就是繼承關(guān)系。 當(dāng)對象當(dāng)對象A的引用是對象的引用是對象B的屬性時,稱對象的屬性時,稱對象A和對象和對象B之間是關(guān)聯(lián)關(guān)系之間是關(guān)聯(lián)關(guān)系
15、 引用是指對象的名稱、地址、句柄等可以獲取或操縱該對象的途徑。相對于對象本身,對象的引用所占用的內(nèi)存空間要少得多,它只是找到對象的一條線索。 JavaJava語言程序設(shè)計教程語言程序設(shè)計教程 趙海廷編著趙海廷編著142021-10-251.4 面向?qū)ο蟪绦蛟O(shè)計的特點(diǎn)面向?qū)ο蟪绦蛟O(shè)計的特點(diǎn)1.4.1 資源的可重用性資源的可重用性 資源的可重用性就是指一個軟件項(xiàng)目中所開發(fā)的模塊不僅局限于在這個項(xiàng)目中使用,還可以重復(fù)地使用在其它項(xiàng)目中,這就是資源的可重用性。 1.4.2 功能的可擴(kuò)展性功能的可擴(kuò)展性 功能的可擴(kuò)展性是現(xiàn)代應(yīng)用軟件設(shè)計提出的又一個重要要求,即要求應(yīng)用軟件能夠很方便地、很容易地進(jìn)行擴(kuò)充和
16、修改。 1.4.3 系統(tǒng)的可管理性系統(tǒng)的可管理性 面向?qū)ο蟮拈_發(fā)方法用比過程和函數(shù)豐富且復(fù)雜得多的類作為構(gòu)建系統(tǒng)的部件,使整個項(xiàng)目的組織更加合理、方便。JavaJava語言程序設(shè)計教程語言程序設(shè)計教程 趙海廷編著趙海廷編著152021-10-251.5 面向?qū)ο笙到y(tǒng)的開發(fā)過程面向?qū)ο笙到y(tǒng)的開發(fā)過程面向?qū)ο箝_發(fā)過程以分為面向?qū)ο蟮姆治?Object Oriented Analysis,OOA)、面向?qū)ο蟮脑O(shè)計(Object Oriented Design,OOD)、面向?qū)ο蟮膶?shí)現(xiàn)(Object Oriented Programming,OOP)三個階段。1.5.1 面向?qū)ο笙到y(tǒng)的分析方法面向?qū)ο?/p>
17、系統(tǒng)的分析方法 面向?qū)ο蠓治龅闹饕饔檬敲鞔_用戶的需求,用標(biāo)準(zhǔn)化的面向?qū)ο蟮哪P鸵?guī)范地表述這一需求,最后形成面向?qū)ο蟮姆治瞿P?,即OOA模型。面向?qū)ο蟮姆治鍪紫葢?yīng)該明確用戶的需求,包括對用戶需求的全面理解、分析和篩選,明確所要開發(fā)軟件系統(tǒng)的職責(zé)界限,并進(jìn)行各種可行性研究和確定資源、進(jìn)度和預(yù)算等。1.5.2 面向?qū)ο笙到y(tǒng)的設(shè)計方法面向?qū)ο笙到y(tǒng)的設(shè)計方法 面向?qū)ο笙到y(tǒng)的設(shè)計將在OOA模型的基礎(chǔ)上引入界面管理、任務(wù)管理和數(shù)據(jù)管理這三部分內(nèi)容,進(jìn)一步充實(shí)OOA模型。JavaJava語言程序設(shè)計教程語言程序設(shè)計教程 趙海廷編著趙海廷編著162021-10-25 界面管理負(fù)責(zé)整個系統(tǒng)的人機(jī)交互界面的設(shè)計;
18、任務(wù)管理負(fù)責(zé)處理系統(tǒng)資源分配的工作;數(shù)據(jù)管理負(fù)責(zé)系統(tǒng)與數(shù)據(jù)庫的接口。以上三部分加上OOA模型代表的“問題邏輯”部分,構(gòu)成了最初的OOD模型。 將OOD模型劃分為問題邏輯、界面管理、任務(wù)管理和數(shù)據(jù)管理四個部分,其好處在于實(shí)現(xiàn)上的透明性。 1.5.3 面向?qū)ο笙到y(tǒng)的實(shí)現(xiàn)方法面向?qū)ο笙到y(tǒng)的實(shí)現(xiàn)方法 面向?qū)ο蟮膶?shí)現(xiàn)就是具體的編碼階段,它主要包括:選擇一種合適的面向?qū)ο蟮木幊陶Z言。用選定的語言編碼實(shí)現(xiàn)詳細(xì)設(shè)計步驟所得到的公式、圖表、說明和規(guī)則等對軟件系統(tǒng)各個類的詳盡描述。將編寫好的各個代碼模塊根據(jù)類的相互關(guān)系進(jìn)行集成。 利用開發(fā)人員提供的測試樣例和用戶提供的測試樣例,分別檢驗(yàn)編碼完成的各個模塊和整個軟件
19、系統(tǒng)。JavaJava語言程序設(shè)計教程語言程序設(shè)計教程 趙海廷編著趙海廷編著172021-10-251.6 1.6 命令提示符下的命令提示符下的Java Java 開發(fā)環(huán)境開發(fā)環(huán)境 1.6.1 JDK的安裝與設(shè)置的安裝與設(shè)置 J2SDK也簡稱為JDK,是目前進(jìn)行Java開發(fā)的重要工具,較新的版本為JDK1.6.*,用戶可從sun公司的網(wǎng)站上免費(fèi)下載。 JDK有三個版本供用戶選擇,即標(biāo)準(zhǔn)版(standard edition)、企業(yè)版(enterprise edition)、微型版(micro edition)。注意要選擇與操作系統(tǒng)對應(yīng)的版本。 所下載的JDK文件是自解壓文件,正確下載后,可以直接運(yùn)行該文件,依照屏幕上的提示,逐步進(jìn)行,即可完成JDK的安裝。JavaJava語言程序設(shè)計教程語言程序設(shè)計教程 趙海廷編著趙海廷編著182021-10-25 對于使用Windows操作系統(tǒng)的用戶,需要對path和classpath兩個變量進(jìn)行設(shè)置。如果JDK的安裝目錄為C:jdk1.6,則需將path設(shè)置到c:jdk1.6bin,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程索賠重慶市房屋建筑與市政基礎(chǔ)設(shè)施工程現(xiàn)場施工專業(yè)人員土建預(yù)算員培訓(xùn)課件
- 建設(shè)工程開標(biāo)注意事項(xiàng)學(xué)習(xí)情境四建設(shè)工程招投標(biāo)的開標(biāo)評標(biāo)和定標(biāo)課件
- 2024-2025學(xué)年河南省開封市龍亭區(qū)金明小學(xué)四年級數(shù)學(xué)第二學(xué)期期末統(tǒng)考模擬試題含解析
- 中國礦業(yè)大學(xué)《藥物化學(xué)(含天然藥物化學(xué))》2023-2024學(xué)年第二學(xué)期期末試卷
- 屏南縣2025屆三年級數(shù)學(xué)第二學(xué)期期末預(yù)測試題含解析
- 伽師縣2024-2025學(xué)年三下數(shù)學(xué)期末學(xué)業(yè)水平測試模擬試題含解析
- 山東傳媒職業(yè)學(xué)院《網(wǎng)店數(shù)字化運(yùn)營》2023-2024學(xué)年第二學(xué)期期末試卷
- 滄州幼兒師范高等??茖W(xué)?!秶H貿(mào)易談判與禮儀(雙語)》2023-2024學(xué)年第二學(xué)期期末試卷
- 北京郵電大學(xué)《安全工程概論》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年山東省濱州市鄒平縣數(shù)學(xué)四下期末質(zhì)量跟蹤監(jiān)視模擬試題含解析
- 2025年上半年潛江市城市建設(shè)發(fā)展集團(tuán)招聘工作人員【52人】易考易錯模擬試題(共500題)試卷后附參考答案
- 旋轉(zhuǎn)類機(jī)電設(shè)備故障預(yù)測、診斷研究
- 旅游電子商務(wù)(第2版) 課件全套 周春林 項(xiàng)目1-8 電子商務(wù)概述-旅游電子商務(wù)數(shù)據(jù)挖掘
- 企業(yè)承包經(jīng)營合同范本
- 中學(xué)校長2025春開學(xué)典禮講話:以黃旭華之魂、DeepSeek 之智、哪吒之氣逐夢新程
- 2025年福建省中職《英語》學(xué)業(yè)水平考試核心考點(diǎn)試題庫500題(重點(diǎn))
- 【課件】自然環(huán)境課件-2024-2025學(xué)年七年級地理下冊人教版
- 2025年01月公安部第三研究所公開招聘人民警察筆試筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 新媒體營銷(第三版) 課件全套 林海 項(xiàng)目1-6 新媒體營銷認(rèn)知-新媒體營銷數(shù)據(jù)分析
- 愚公移山英文 -中國故事英文版課件
- 乙酸乙酯的制備ppt課件
評論
0/150
提交評論