版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第一講Java和面對對象概述時間:2023年2月電子信息工程學(xué)院姜斌教材:第一章〔前三節(jié)〕學(xué)問要點(diǎn)本講著重介紹Java語言中的背景學(xué)問和根本概念。具體涉及:本章將簡要介紹軟件開發(fā)方法的變革面對對象程序設(shè)計(jì)中的根本概念介紹Java語言的特點(diǎn)及開發(fā)Java程序的根本步驟等介紹Java語言特點(diǎn)、與C/C++的主要差異、Java程序執(zhí)行過程、Java運(yùn)行環(huán)境及開發(fā)工具等根本學(xué)問。內(nèi)容概述一、面對對象軟件開發(fā)方法概述二、面對對象的根本概念三、Java語言概述四、Java主要相關(guān)技術(shù)本章小結(jié)思考與練習(xí)課程前序把握或了解的概念
軟件〔Software〕軟件工程〔SoftwareEngineering〕計(jì)算機(jī)程序語言〔ProgrammingLanguage〕信息〔Information〕和數(shù)據(jù)〔Data〕計(jì)算機(jī)系統(tǒng)〔ComputerSystem〕數(shù)據(jù)庫系統(tǒng)〔DatabaseSystem〕一面對對象軟件開發(fā)方法概述60年月至80年月,早期傳統(tǒng)的開發(fā)方法,軟件開發(fā)方法是面對過程進(jìn)開放發(fā)的;因此統(tǒng)稱為面對過程的開發(fā)方法代表語言:有Fortran,Pascal,C語言等軟件生產(chǎn)率低軟件重用程度低軟件維護(hù)艱辛軟件非用戶所需1.傳統(tǒng)軟件開發(fā)方法存在的問題特點(diǎn):分析出解決問題所需要的步驟,然后用函數(shù)把這些步驟一步一步實(shí)現(xiàn),使用的時候一個一個依次調(diào)用就可以了。事例:五子棋1、開頭玩耍, 2、黑子先走,3、繪制畫面, 4、推斷輸贏,5、輪到白子, 6、繪制畫面,7、推斷輸贏, 8、返回步驟2,9、輸出最終結(jié)果。每一步都要走,這就是過程;然而用戶需求的是可能變化的,因此這種變化對基于過程的設(shè)計(jì)來說是災(zāi)難。2.面對過程方法問題的歸因3.面對對象方法特點(diǎn)特點(diǎn):面對對象是把構(gòu)成問題事務(wù)分解成各個對象,建立對象的目的不是為了完成一個步驟,而是為了描敘某個事物在整個過程中的屬性和行為。而面對對象的設(shè)計(jì)則是從另外的思路來解決問題。對象有玩家〔Player〕,棋盤系統(tǒng)〔Chess〕,規(guī)章系統(tǒng)〔GameRule〕整個五子棋可以分為:1、黑白雙方,這兩方的行為是一模一樣的,行為有下棋,悔棋等2、棋盤系統(tǒng),負(fù)責(zé)繪制畫面,3、規(guī)章系統(tǒng),負(fù)責(zé)判定諸如執(zhí)先手、犯規(guī)、輸贏等。4.面對對象方法特點(diǎn)面對對象方法〔Object-oriented〕,以對象代表問題解的中心環(huán)節(jié),力求符合人們的思維習(xí)慣,承受“對象+消息”的程序設(shè)計(jì)模式進(jìn)展時間:90年月,進(jìn)展和流行代表語言:Java,C++,C#,VB.NET地位:面對對象堪稱是軟件進(jìn)展取得的里程碑式的宏大成就。包括局部:面對對象分析和設(shè)計(jì)〔OOAD〕,面對對象編碼〔OOP〕,面對對象測試(OOT〕5.面對對象方法的主要優(yōu)點(diǎn)符合人們通常的思維方式,承受“對象+消息”方式,易理解性降低或分解問題的難度和簡潔性,可重用性好日趨成熟,標(biāo)準(zhǔn)化,體系化,標(biāo)準(zhǔn)性主流開發(fā)方法,可維護(hù)性好6.面對對象的軟件開發(fā)生命周期開發(fā)一個軟件系統(tǒng)需要有多個環(huán)節(jié)的,整個構(gòu)成一個生命周期〔SDLC〕例子:瀑布式作用:可有效和高效地進(jìn)展軟件開發(fā)工作的組織,課件附有流行的一種生命周期過程附2:一種典型面對對象軟件開發(fā)過程二、面對對象的根本概念簡而言之:面對對象三元素=類+對象+消息面對對象三大特性封裝性〔encapsulation〕繼承性〔inheritance〕多態(tài)性(polymorphism)1.面對對象的根本概念2.面對對象三元素類〔class〕類描述對象的“根本原型”,是描述性的類別或模板,即對一組對象的抽象。它定義一組對象所能擁有的靜態(tài)特征和動態(tài)行為在java中分別被稱為屬性〔Attribute〕和方法〔Method〕,用以說明該組對象的力氣與性質(zhì),被編譯后的類存在于class文件中。例如,小汽車car可以被抽象成類,它描述了全部小汽車的性質(zhì),包括汽車的品牌、型號、顏色、車門數(shù)、速度,即屬性;還包括動態(tài)行為操作,如啟動、駕駛、加速、剎車等等,即方法。別稱:屬性有時在某種語境下也被稱為字段〔fields〕或變量〔variables〕方法有時在某種語境下被稱為行為〔behaviors〕,一些程序員或中文資料中還誤稱為〔函數(shù)〕。對象〔object〕對象就是現(xiàn)實(shí)世界中某個具體的物理實(shí)體在計(jì)算機(jī)中的映射和表達(dá)。所以一個對象把屬性和行為密封成一個整體,通過一個類作為模板可以建立多個對象,建立后的對象實(shí)例存在于內(nèi)存中例如:以Car汽車類為模板,可以創(chuàng)立hammerCar,toyotaCar對象;這兩個對象的是獨(dú)立的個體,具有各自屬性和相應(yīng)方法。newnew萬物皆對象?。?!Brand:HammerType:H2Color:YellowDoor:4Drive()Brand:ToyotaType:FJ酷路澤Color:BlueDoor:2Drive()Memory消息〔message〕對象之間進(jìn)展通信的一種構(gòu)造叫做消息,消息傳遞是對象與其外部世界相互關(guān)聯(lián)的唯一途徑。對象可以向其他對象發(fā)出消息以懇求效勞,也可以響應(yīng)其他對象傳來的消息。
張三轎車A轎車A.啟動()轎車A.駕駛轎車A.停頓3.面對對象的三大特性所謂封裝又稱為信息隱蔽(InformationHiding),是面對對象的根本特征。封裝的目的在于將使用者與設(shè)計(jì)者分別,使用者不必知道操作實(shí)現(xiàn)的細(xì)節(jié),只需用設(shè)計(jì)者供給的消息來訪問對象。信息隱蔽的特點(diǎn):1.在屬性值訪問上,一般屬性是私有的,供給效勞的方法是公有的。2.內(nèi)部實(shí)現(xiàn)受疼惜,供給的功能具體實(shí)現(xiàn),實(shí)現(xiàn)細(xì)節(jié)不能夠在對象外訪問,有時也稱為內(nèi)部方法。3.面對對象的三大特性繼承是面對對象語言中的一種重要機(jī)制,該機(jī)制自動地為一個類供給來自另一個類的操作和屬性,這樣程序員只需在新類中定義已有類中沒有的屬性與〔或〕操作來建立新類。多態(tài)性是指一個名字具有多種語義,即指同一消息為不同對象所承受時,可以導(dǎo)致不同的操作。
除遺傳關(guān)系外,現(xiàn)實(shí)世界中還普遍存在著局部—整體關(guān)系。例如,飛機(jī)可由發(fā)動機(jī)、機(jī)身、機(jī)械把握系統(tǒng)、電子把握系統(tǒng)等構(gòu)成。聚攏關(guān)系留意Java不支持多父繼承。交通工具汽車輪船飛機(jī)三、Java語言概述1.什么是java語言2.JDK三種平臺3.進(jìn)展歷史4.語言特點(diǎn)…1.什么是Java*(頁1)JAVA是Sun公司開發(fā)(該公司已經(jīng)于2023年被甲骨文公司收購)的一種面對對象的語言技術(shù),通過它用戶可以快速開發(fā)跨平臺的、高效安全的單機(jī)或網(wǎng)絡(luò)應(yīng)用程序。2.Java語言三種平臺簡介〔頁3〕Java要實(shí)現(xiàn)“一次寫成,多處運(yùn)行”,就必需供給多個平臺J2SE---java2standardedition標(biāo)準(zhǔn)版,供給了標(biāo)準(zhǔn)的SDK開發(fā)平臺〔也稱為JDK〕,可開發(fā)低端java用于小型J2ME—java2microedition微型版,用于java的移動應(yīng)用開發(fā),適應(yīng)于目前比較流行的嵌入式開發(fā)J2EE—java2enterpriseedition企業(yè)版,用于構(gòu)建企業(yè)級的效勞應(yīng)用,J2EE平臺包括J2SE平臺,并附加了企業(yè)級開發(fā)的類庫。3.Java語言的進(jìn)展歷史(頁1)1991:JamesGosling,BillJoy等人一起從事GreenProject中、產(chǎn)生新的語言O(shè)ak,1994下半年:WWW快速進(jìn)展,得到Sun公司的支持,通過Oak開發(fā)的HotJava掃瞄器得到關(guān)注;隨后Oak改名Java。1995:Java作為SUN公司開發(fā)工具產(chǎn)品,正式公布最早是1.0Java語言自1995年問世以來不斷進(jìn)展,開發(fā)平臺的版本已經(jīng)從早先的JDK1.0進(jìn)展到JDK1.2.0,到當(dāng)前廣泛應(yīng)用的JDK1.5.0,以及SUN最終開發(fā)的JDK1.6.0。Java語言的每一個版本的推出,都是對自身缺乏的抑制和完善。它日益成為網(wǎng)絡(luò)應(yīng)用的一支強(qiáng)有力的技術(shù)力氣?!擦粢鈴腏ava1.5后,Java的版本又分成內(nèi)部版本和外部版本,例如:也稱為5.0版,也稱為7.0〕具有大轉(zhuǎn)變的版本〔內(nèi)部版本〕1.11.23.Java語言版本進(jìn)展3.Java語言版本進(jìn)展留意:2023年,由于Oracle收購了Sun公司,7.0和其他早期版本JDK,JRE下載都在Oracle的官網(wǎng)上,網(wǎng)站如下:Java〔SUN〕和.NET〔M$〕所屬系列語言是開發(fā)兩大陣營。在目前流行的B/S開發(fā)中,Java和.NET兩種開發(fā)環(huán)境是兩大陣營體系;而Java比后者具有更顯著的可移植性,跨平臺性,而且很多java工程往往是基于自由組織開發(fā)〔GNU〕協(xié)議的免費(fèi)工程,可以自由地被用戶工程所引用。4.Java語言的應(yīng)用前景Java虛擬機(jī)〔JVM〕—軟件虛擬的計(jì)算機(jī),SUN公司供給各個操作系統(tǒng)上的Java虛擬機(jī)Java效勞器端技術(shù)---JSP/Servlet等技術(shù)為代表的效勞器5.Java語言的特點(diǎn)〔pg6-7〕5.Java語言的特點(diǎn)〔P2〕簡潔性面對對象分布式處理強(qiáng)健性構(gòu)造中立安全性系統(tǒng)精簡,但功能齊備。風(fēng)格類似于C++,對C++程序員而言特殊簡潔把握。Java摒棄了C++中簡潔引發(fā)程序錯誤的地方,如指針操作和內(nèi)存治理;供給豐富的類庫。完全是面對對象的,它不支持類似C語言那樣的面對過程的程序設(shè)計(jì)技術(shù)。支持TCP/IP協(xié)議。Java應(yīng)用程序可通過一個特定的URL來翻開并訪問對象,就像訪問本地文件系統(tǒng)那樣簡潔。供給面對對象的特殊處理機(jī)制,在編譯時能對Null指針檢測、數(shù)組邊界檢測、特殊出口字節(jié)代碼校驗(yàn)等。自動垃圾收集來進(jìn)展內(nèi)存治理。將源程序編譯成一種構(gòu)造中立的中間文件格式。只要有Java運(yùn)行系統(tǒng)的機(jī)器都能執(zhí)行這種中間代碼。Java語言供給的安全。編譯器供給的安全。字節(jié)碼校驗(yàn)。5.Java語言的特點(diǎn)可移植性解釋性高性能多線程動態(tài)Java應(yīng)用程序可以在配備了Java解釋器和運(yùn)行環(huán)境的任何計(jì)算機(jī)系統(tǒng)上運(yùn)行,而與體系構(gòu)造無關(guān)。Java編譯器將java源文件生成類文件.class,類文件可通過java命令解釋執(zhí)行,將Java字節(jié)碼轉(zhuǎn)換為機(jī)器碼。
JIT編譯器??梢蕴岣逬ava代碼的執(zhí)行速度。
內(nèi)置多線程功能,使得在一個程序里可同時執(zhí)行多個小任務(wù)。帶來的好處是更好的交互性和實(shí)時把握性。允許程序動態(tài)地裝入運(yùn)行過程中所需要的類,這是C++語言進(jìn)展面對對象程序設(shè)計(jì)所無法實(shí)現(xiàn)的。6.Java程序的執(zhí)行過程首先在某個操作系統(tǒng)下用編輯器編寫代碼,保存源代碼〔.java〕,然后對編寫的代碼進(jìn)展編譯產(chǎn)生字節(jié)碼文件〔.class〕編譯后的程序其執(zhí)行過程為:載入:Java的類載入器負(fù)責(zé)把程序中的全部字節(jié)碼文件都加載到內(nèi)存中。這些被裝入內(nèi)存的字節(jié)碼文件可以保持在硬盤的當(dāng)前名目下;代碼校驗(yàn):字節(jié)碼全部載入內(nèi)存后,Java的代碼校驗(yàn)器開頭檢查這些字節(jié)碼的合法性;解釋執(zhí)行:通過了代碼校驗(yàn)的二進(jìn)制字節(jié)碼程序被交給解釋器逐句的解釋并運(yùn)行。編譯型源程序可執(zhí)行程序exe編譯連接運(yùn)行操作系統(tǒng)Java源程序字節(jié)碼程序解釋編譯裸機(jī)二進(jìn)制運(yùn)行圖1.Java程序運(yùn)行過程和編譯型程序運(yùn)行過程比照字節(jié)碼程序二進(jìn)制運(yùn)行二進(jìn)制二進(jìn)制Linux平臺圖2.Java虛擬機(jī)和跨平臺解釋運(yùn)行Unix平臺Windows平臺解釋器JVM〔虛擬機(jī)〕Java在根本類庫中,供給了大量的類以滿足網(wǎng)絡(luò)化、多線程、面對對象系統(tǒng)的需要,類庫包含有類包,例如:類包有:java.lang,java.io,,java.awt,java.util等等。7.豐富的類庫〔P4〕對于變量聲明、參數(shù)傳遞、操作符、流把握等,Java使用了和C、C++一樣的傳統(tǒng),使得生疏C、C++的程序員能很便利地進(jìn)展編程。同時,Java為了實(shí)現(xiàn)其簡潔、魯棒、安全等特性,也摒棄了C和C++中很多不合理的內(nèi)容,例如多父繼承,運(yùn)算符重載。8.Java和C、C++
實(shí)踐:第一個Java程序像一個Baby在世界發(fā)出第一聲叫聲一樣;我們一起做一個Java程序HelloWORLD;對它進(jìn)展編輯,編譯,解釋運(yùn)行工作,看看虛擬機(jī)的工作過程;IamCindy,1monthold
創(chuàng)立簡潔的Java程序代碼分析行1為注釋。行2定義了用戶自定義類HelloWorld。行2和行6的花括號對定義了代碼塊,其中的代碼為類HelloWorld的實(shí)現(xiàn)。行3定義了類HelloWorld的一個成員,即名為main的方法。main方法是使用static修飾符聲明的靜態(tài)方法,將作為程序的入口點(diǎn)。行3和行5的花括號對定義了代碼塊,其中的代碼為main方法的實(shí)現(xiàn)。行4通過調(diào)用System.out.println(“HelloWorld!“),在把握臺上輸出字符串:HelloWorld!。編譯和運(yùn)行結(jié)果javacHelloWorld.java產(chǎn)生一個名HelloWorld.class的文件,即字節(jié)碼的類文件運(yùn)行應(yīng)用程序javaHelloWorld輸出結(jié)果:HelloWorld!四、Java語言相關(guān)重要概念1.Java的應(yīng)用程序類型〔P3〕它適于:跨平臺/多平臺的應(yīng)用程序基于Web的分布式網(wǎng)絡(luò)應(yīng)用程序〔B/S〕基于GUI的應(yīng)用程序企業(yè)級應(yīng)用程序多線程應(yīng)用程序關(guān)鍵任務(wù)的〔數(shù)據(jù)庫〕應(yīng)用程序分布式網(wǎng)絡(luò)應(yīng)用程序手機(jī)移動應(yīng)用程序隨著技術(shù)進(jìn)展,Java和其他語言各有新技術(shù)納入到體系2.Java核心概念1〕.JDK(JavaDevelopmentKit)〔P5〕即java開發(fā)環(huán)境。JDK是Sun公司開發(fā)的一個免費(fèi)的Java開發(fā)工具集,供給了Java開發(fā)、運(yùn)行和測試一體的環(huán)境,它包含完整的JRE2〕.JRE(JavaRuntimeEnvironment)〔P4〕即Java運(yùn)行環(huán)境。JRE只是Java的運(yùn)行環(huán)境,供給了Java程序運(yùn)行所需要的根本類庫。留意:JRE一般是和JDK捆綁下載的,假設(shè)只需要在平臺下運(yùn)行java程序的,不需要開發(fā)的,可以下載JRE的單獨(dú)版原來安裝3〕.JVM(JavaVirtualMachine)〔P4〕即Java虛擬機(jī),它是一個軟件系統(tǒng),可依據(jù)于不同操作系統(tǒng)下,它可以編譯,解釋并運(yùn)行Java字節(jié)碼。它是Java的核心,保證了在任何異構(gòu)的環(huán)境下都可以運(yùn)行Java成,解決了Java跨平臺的問題。4〕.字節(jié)碼文件〔ByteCode〕與傳統(tǒng)的解釋型高級語言不同,Java源程序不是直接交給解釋器解釋,而是通過一個與編譯型語言相像的編譯過程,把Java源程序翻譯成一種特定的二進(jìn)制字節(jié)碼文件〔擴(kuò)展名為class〕,再把這個字節(jié)碼文件交給Java解釋器來解釋執(zhí)行。5〕.API〔ApplicationProgrammingInterface〕是J
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 四年級數(shù)學(xué)(四則混合運(yùn)算)計(jì)算題專項(xiàng)練習(xí)與答案
- 四年級數(shù)學(xué)(四則混合運(yùn)算)計(jì)算題專項(xiàng)練習(xí)與答案
- 2024至2030年鈦金色銅雙扣軟管項(xiàng)目投資價值分析報告
- 民房搭建合同范例
- 陜西能源職業(yè)技術(shù)學(xué)院《礦石學(xué)與礦相學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 消費(fèi)返利合同范例
- 政和租房合同范例
- 工廠能源托管合同范例
- 裝修全案采購合同范例
- 雙眼皮手術(shù)合同范例
- 白油檢測報告
- 心肌梗死患者的護(hù)理健康評估培訓(xùn)
- 體育教研組老師工作總結(jié)
- 網(wǎng)絡(luò)預(yù)約出租汽車企業(yè)安全隱患排查
- 江蘇省南京市秦淮區(qū)2023-2024學(xué)年上學(xué)期期末檢測九年級數(shù)學(xué)試卷
- 2024北京海淀區(qū)初三(上)期末英語試卷和答案
- 北師大版2023-2024學(xué)年九年級上冊數(shù)學(xué)期末綜合練習(xí)
- 《防火防爆》課件
- 《地籍調(diào)查項(xiàng)目》課件
- 手持電動工具安全專項(xiàng)培訓(xùn)
- 冷庫裝修合同
評論
0/150
提交評論