




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Java程序設計Name:徐曉霞Room:Z323Telime:周一7-8(3206)
周三7-8(3206)課程安排授課學時——48學時上機實驗——16學時答疑及輔導時間:周一、周三7-8節地點:綜合樓3206考核方式實驗+平時(40%)+考試(60%)。作業提交方式網絡教學平臺教學用書教材:
《Java語言程序設計》
吳倩、林原、李麗霞,鐵道工業出版社,2015.2第1版參考書:
《Java編程思想(第三版)》
BruceEckel,機械工業出版社,2005.5
《設計模式:可復用面向對象軟件的基礎》
ErichGamma,RichardHelm,Ralph Johnson,JohnVlissides,機械工業出版 社,2007.1學習目的Java語言通過本門課程的學習可以使學生掌握Java語言的基本語法和編程規范。面向對象程序設計方法Java語言是一種面向對象的語言,通過學習使學生掌握用面向對象進行編程的思想和實踐。培養實際開發能力,使學生成為一名合格的Java程序員。學會使用設計模式解決常用模塊設計問題。 設計模式是解決固定問題的固定的解決方法。第一章面向對象程序設計思想面向過程
面向對象面向對象:C++、C#、Java、Objective-C(AppleHP)面向對象學習最重要的是:思想(不是語法),理解編程思想——掌握基礎語法——靈活運用工具和類——程序。核心概念:類和對象。面向對象的三大特征:封裝、繼承、多態。類、對象封裝、繼承、多態1.1類和對象物以類聚,人以群分。(分類)生活的類:具有相同特征及行為的一種群體?!叭恕鳖愂且粋€抽象的概念(不是實際存在的實體),真正的實體是所有具備“人類”這個群體的每一個具體的人,也就是“人類”這個類的對象。不同種類的對象構成了現實世界。類描述了一組相同特性(屬性)和相同行為(方法)的對象。DogName(名字)Sex(性別)Age(年齡)Color(毛色)Weight(重量)Breed(品種)Numberofbarks#bark#kump數據方法現實世界的Dog類描述:程序中的Dog類描述:DogstringNameboolean
isMaleintAgestringColordoubleWeightstringBreedint
Numbarks#voidbark()#voidkump()程序中的Dog類描述:屬性行為例如:用來描述同一類事物的特征描述一類事物可做的操作用Java提供的一種抽象數據類型——類(class),可以定義Dog類:ClassDog{stringName;
boolean
isMale;
intAge;
stringColor;
doubleWeight;
stringBreed;
int
Numbarks;voidbark(){。。。}Voidkump(){。。。}}Note:面向過程的編程思想:
以過程劃分,注重過程。面向對象的編程思想:
以類來劃分、以對象來考慮問題;例:用槍射擊鴨子如果用C語言來實現,考慮實現步驟:舉槍、瞄準、扳機、發射鴨子1、鴨子2……到鴨子10。出發點是射擊鴨子的過程。面向過程首先劃分類:鴨子類、槍類(獵槍、手槍、氣槍等)。槍類具有瞄準、扳機、發射等功能。挑選一桿獵槍——也就是“槍”的這個類的一個對象來完成射擊任務。面向對象**面向對象的思維方式更符合認識世界的思維方式,而且代碼簡潔、可重用性強。思考:如果打10只老虎?1.2面向對象程序設計的三大特征BruceEckel《Thinkinginjava》三大特征:封裝、繼承、多態。事實上,封裝、繼承、多態是一種設計理念,一種程序藝術,與程序設計沒有關系。面對一個項目。首先思考類與類之間的關聯,怎樣用封裝、繼承、多態等機制畫出程序的基本架構藍圖,以及優化程序架構,至于細節問題,如采用什么語言,那都是次要的,畢竟語言不過是程序設計思想的一種表現形式而已。1.2.1封裝屬性可用來描述同一類事物的特征;方法可描述一類事物可做的操作。封裝就是把屬于同一類事物的共性(包括屬性與方法)歸到一個類中,以方便使用。
1.概念:封裝:也稱為信息隱藏,是指利用抽象數據類型將數據和基于數據的操作封裝在一起,使其構成一個不可分割的獨立實體,數據被保護在抽象數據類型的內部,盡可能地隱藏內部的細節,只保留一些對外接口使之與外部發生聯系。系統的其他部分只有通過包裹在數據外面的被授權的操作來與這個抽象數據類型交流與交互。也就是說,用戶無需知道對象內部方法的實現細節,但可以根據對象提供的外部接口(對象名和參數)訪問該對象。
2.好處:
(1)實現了專業的分工。將能實現某一特定功能的代碼封裝成一個獨立的實體后,各程序員可以在需要的時候調用,從而實現了專業的分工。
(2)隱藏信息,實現細節。通過控制訪問權限可以將可以將不想讓客戶端程序員看到的信息隱藏起來,如某客戶的銀行的密碼需要保密,只能對該客戶開發權限。銷售數據管理銷售管理本部門銷售部門人力資源數據管理人力資源管理本部門人力資源部財務數據管理財務管理本部門財務部對象的封裝示意圖對象屬性方法1.2.2繼承繼承:是個性對共性的屬性與方法的接受,并加入個性特有的屬性與方法1.概念:一個類繼承另一個類,則稱繼承的類為子類,被繼承的類為父類。2.目的:實現代碼的復用。3.理解:子類與父類的關系并不是日常生活中的父子關系,子類與父類而是一種特殊化與一般化的關系,是is-a的關系,子類是父類更加詳細的分類。如classdogextendsanimal,就可以理解為dogisaanimal.注意設計繼承的時候,若要讓某個類能繼承,父類需適當開放訪問權限,遵循里氏代換原則,即向修改關閉對擴展開放,也就是開-閉原則。4.結果:繼承后子類自動擁有了父類的屬性和方法,但特別注意的是,父類的私有屬性和構造方法并不能被繼承。
另外子類可以寫自己特有的屬性和方法,目的是實現功能的擴展,子類也可以復寫父類的方法即方法的重寫。ColorSizeBirdColorSizechirpJumpColorSizeBombAttackColorSizeSmileCrazyBirdKindBirdAngryBird類的繼承示意圖1.2.3多態多態是以封裝和繼承為基礎的。是在抽象的層面上實施一個統一的行為。
1.概念:相同的事物,調用其相同的方法,參數也相同時,但表現的行為卻不同。
2.理解:子類以父類的身份出現,但做事情時還是以自己的方法實現。子類以父類的身份出現需要向上轉型(upcast),其中向上轉型是由JVM自動實現的,是安全的,但向下轉型(downcast)是不安全的,需要強制轉換。子類以父類的身份出現時自己特有的屬性和方法將不能使用。ColorSizeBirdColorSizechirpJumpColorSizeAttackColorSizeSmileCrazyBirdKindBirdAngryBird多態示意圖ShootSpawnShootBomb1.3面向對象的程序設計第一階段:OOA——面向對象需求分析。第二階段:OOD——面向對象設計第三階段:OOP——面向對象編程第四階段:OOT——面向對象測試面向對象軟件開發的幾個基本流程1.3.1類的建模UnifiedModelingLanguage(UML)又稱統一建模語言或標準建模語言,是始于1997年一個OMG標準,它是一個支持模型化和軟件系統開發的圖形化語言,為軟件開發的所有階段提供模型化和可視化支持,包括由需求分析到規格,到構造和配置。面向對象的分析與設計(OOA&D,OOAD)方法的發展在80年代末至90年代中出現了一個高潮,UML是這個高潮的產物。它不僅統一了Booch、Rumbaugh和Jacobson的表示方法,而且對其作了進一步的發展,并最終統一為大眾所接受的標準建模語言。建模——勾畫出工程的藍圖軟件工程“建?!本褪窃诳紤]實際的代碼細節之前,用UML圖示將程序結構在很高的層次上表示出來。建模工具:RationRose(IBM)、Together(Borland公司)、MyEclipse等。MSoffice‘sVisio也可以使用(簡單)。UML2套建模機制:靜態建模機制和動態建模機制。圖名說明類圖(ClassDiagram)表示類之間的關系對象圖(ObjectDiagram)表示特定對象之間的關系時序圖(SequenceDiagram)表示對象之間在時間上的通信協作圖(CollaborationDiagram)按照時間和空間順序表示對象之間的交互和它們之間的關系狀態圖(StateDiagram)表示對象的狀態和響應用例圖(UseCaseDiagram)表示用戶如何與程序交互活動圖(ActiveDiagram)表示系統元素的活動組件圖(ComponentDiagram)表示實現系統的組件的組織配置圖(DeploymentDiagram)表示環境的配置UML的主要類圖1.3.2類的層次結構設計類的層次結構代表了類與類之間的關系,包括有多少個類、它們之間的關系是什么、如何關聯等。憤怒的小鳥——“小鳥”類和“綠豬”類?!靶▲B”類的子類——白鳥類、藍鳥類、紅鳥類?!靶▲B”類的行為又影響“綠豬”類。這就是經過面向對象設計初步得出類的層次結構。從程序設計角度分析:類之間的關系包括泛化、依賴、關聯、聚合、組合。1.
泛化(Generalization)
【泛化關系】:是一種繼承關系,表示一般與特殊的關系,它指定了子類如何特化父類的所有特征和行為。例如:老虎是動物的一種,即有老虎的特性也有動物的共性。
【箭頭指向】:帶三角箭頭的實線,箭頭指向父類2.
依賴(Dependency)
【依賴關系】:是一種使用的關系,即一個類的實現需要另一個類的協助,所以要盡量不使用雙向的互相依賴.
【代碼表現】:局部變量、方法的參數或者對靜態方法的調用
【箭頭及指向】:帶箭頭的虛線,指向被使用者3.
關聯(Association)
【關聯關系】:是一種擁有的關系,它使一個類知道另一個類的屬性和方法;如:老師與學生,丈夫與妻子關聯可以是雙向的,也可以是單向的。雙向的關聯可以有兩個箭頭或者沒有箭頭,單向的關聯有一個箭頭。
【代碼體現】:成員變量
【箭頭及指向】:帶普通箭頭的實心線,指向被擁有者上圖中,老師與學生是雙向關聯,老師有多名學生,學生也可能有多名老師。但學生與某課程間的關系為單向關聯,一名學生可能要上多門課程,課程是個抽象的東西他不擁有學生。
下圖為自身關聯:
4.
聚合(Aggregation)
【聚合關系】:是整體與部分的關系,且部分可以離開整體而單獨存在。如車和輪胎是整體和部分的關系,輪胎離開車仍然可以存在。
聚合關系是關聯關系的一種,是強的關聯關系;關聯和聚合在語法上無法區分,必須考察具體的邏輯關系。
【代碼體現】:成員變量
【箭頭及指向】:帶空心菱形的實心線,菱形指向整體5.
組合(Composition)
【組合關系】:是整體與部分的關系,但部分不能離開整體而單獨存在。如公司和部門是整體和部分的關系,沒有公司就不存在部門。
組合關系是關聯關系的一種,是比聚合關系還要強的關系,它要求普通的聚合關系中代表整體的對象負責代表部分的對象的生命周期?!敬a體現】:成員變量【箭頭及指向】:帶實心菱形的實線,菱形指向整體6.
實現(Realization)
【實現關系】:是一種類與接口的關系,表示類是接口所有特征和行為的實現.
【箭頭指向】:帶三角箭頭的虛線,箭頭指向接口各種關系的強弱順序:
泛化
=
實現
>
組合
>
聚合
>
關聯
>
依賴
下面這張UML圖,比較形象地展示了各種類圖關系:1.3.3面向對象程序設計原則單一責任原則開放——封閉原則依賴倒轉原則李氏代換原則面向對象程序設計主要遵循以下4個原則1.4Java語言Java簡史前身:Oak(JamesGosling1990)Java大事記90年,Sun公司開始Green工程93年,WWW席卷全球94年,開始定位于Internet95.1,Java命名HotJava,第一個支持Java的瀏覽器
Netscape2.01995.5.23Java誕生(Java1.0.2API)1997.2.18JDK1.1(java1.1API)1998.12JDK1.22000.5JDK1.32002.2JDK1.42004.10JDK1.5(JDK5.0)最新版JDK:JDK7.0網址(查詢新動向)http://Java簡史續j2sej2mej2eeJava大家庭中的三個主要成員1.簡單:simpleandsmall2.面向對象完全基于類、對象:OOA,OOD,OOP以類的形式組織代碼,數據類型封裝、繼承、多態3.分布式字節碼可來源于網絡Java具有豐富的網絡編程功能1.4Java的特點:4.穩定性檢查數據類型的匹配,數組下標越界不支持指針,保護內存數據、程序自動內存管理,碎片收集例外控制機制,正確處理運行時錯誤5.安全性字節碼加密傳輸,客戶端校驗解釋器在client端臨時分配、布置內存Java的特點(續)6.結構中立、可移植:字節碼與計算機結構無關。
對于不同平臺,有不同的虛擬機。
JVM屏蔽了底層平臺差異,實現了“一次編譯,隨處運行”。
[Return]Java的特點(續)Importjava.io.*;classtest{….}源程序(*.java文件)DFBA0988……..字節碼(*.class文件)LinuxOSJVMforLinuxWindowsOSJVMforWindowsMacOSJVMforMac編譯1.4.1Java程序的開發環境Java語言的平臺無關性——任意OS。程序經JVM編譯——生成字節碼——可以運行于任意OS上。設置開發環境。下載:http://
安裝配置path&classpathpath:windows系統執行命令時要搜索的路徑。classpath:java在編譯和運行時要找的class所在的路徑。運行javac編譯java程序java運行java程序2、設置環境變量1、下載并安裝開發工具包1.4.1Java程序的開發環境3、安裝集成開發環境NetBeansJCreatorLeBorlandJBuilderMicroSoftVisualJ++VisualAgeforjava(IBM)SunONEstudioBEAworkshopStudioEclipse(MyEclipse
)1.4.2Java程序的編寫開發工具
Java程序的編寫開發工具。簡單程序的編寫,幾乎使用任何文本編輯器都可以進行。例如:記事本、寫字板等。比較復雜的Java應用系統開發:專門的集成開發工具:如JBuilder、VisualJ++、VisualAge、JCreator等。其中優秀的開發工具支持與應用服務如BEAWebLogic、IBMWebSphere的集成。具體選用哪種開發工具要視項目的具體情況而定。JDK實用程序
編譯:
javac:java編譯器,將Java源程序編譯成字節碼(.class)運行:1>java:Java解釋器,直接從類文件執行Java應用程序,即運行application;
2>appletviewer:小程序瀏覽器,執行html文件上的Java小程序,即運行Applet。publicclassHelloWorldApp{publicstaticvoidmain(Stringargs[]){
system.out.println(“HelloWorld!”);}}publicclassHelloWorldAppextendsApplet{publicvoidpaint(Graphicsg){g.drawString(“HelloWorld!”,25,50);}}配置path&classpath右擊——我的電腦——屬性——高級——環境變量——在系統變量里點擊path——編輯。這里在前面加上JDK的安裝路徑下的bin的路徑,例如JDK裝在了c:\ProgramFiles\Java下,那就在前面添上(里面已經有的變量值不要刪掉,直接在前面另外添上)c:\ProgramFiles\Java\jdk1.6.0_01\bin;記得不要把最后面那個“;”丟了。
然后新建系統變量,變量名稱為“classpath”(不加雙引號),變量值為“.;c:\ProgramFiles\Java\jdk1.6.0_01\lib\dt.jar;c:\ProgramFiles\Java\jdk1.6.0_01\lib\tools.jar;”前面是一個“.”和一個“;”,不要丟掉.查找路徑的設置:在dos提示符下輸入:path路徑類路徑的設置:
setclasspath=.;java路徑\lib\dt.jar;java路徑\lib\tools.jar編寫第一個Java程序Java源文件以"java"作為擴展名。源文件的基本組成部分是類(class),本例中的HelloWorldApp類。一個源文件中最多只能有一個public類。其他類的個數不限,如果源文件包含一個public類,該文件必須按該類名命名。Java應用程序的執行入口是main()方法。它有固定的書寫格式:publicstaticvoidmain(String[]args){…}Java嚴格區分大小寫。Java方法由語句構成,每條語句以分號結束。Java注釋方式://用于單行注/*用于多行注釋*//**用于多行注釋*/publicclassHelloWorldApp{publicstaticvoidmain(Stringargs[]){System.out.println(“HelloWorld!”);}}publicclassHelloWorldAppextendsApplet{publicvoidpaint(Graphicsg){g.drawString(“HelloWorld!”,25,50);}}文件名:HelloWorldApp.javaJava程序的編譯及運行注意:文件名應該與類名相同,因為Java解釋器要求公共類必須放在與其同名的文件中。編譯:
c:\java>javac
HelloWorldApp.java
編譯的結果是生成字節碼文件HelloWorldApp.class。運行:
C:\Java>java
HelloWorldApp
其結果就是在顯示器上顯示出“HelloWorld!”這行文字。
創建Applet例:HelloWorldApplet.javaimportjava.awt.*;importjava.applet.*;publicclassHelloWorldAppletextendsApplet{//Thisisanapplet.publicvoidpaint(Graphicsg){g.drawString(“HelloWorld!”,30,30);}}創建Applet(續)使用appletviewer
appletviewerindex.html使用常規的瀏覽器該HTML文件如下。<HTML><HEAD><TITLE>AnApplet</TITLE></HEAD><BODY><appletcode=″HelloWorldApplet.class″width=240height=50></applet></BODY></HTML>其中,使用<applet>標記來啟動HelloWorldApplet,code屬性指明字節碼所在的文件,width和height屬性指明applet所占區域范圍??偨Y:在Java中可以編寫兩類程序:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專車司機工作合同
- 2025版企業員工勞務合同
- 教師培訓需求分析
- 科研經費借款合同模板
- LED屏幕采購安裝合同范本
- 小學數學北師大版六年級上冊1 搭積木比賽教案
- 國際商務合同圖鑒
- 電機在視頻游戲控制設備中的應用評估考核試卷
- 地理信息系統在環境風險評估中的應用考核試卷
- 滾動軸承的表面強化技術考核試卷
- 北京市《配電室安全管理規范》(DB11T 527-2021)地方標準
- 特應性皮炎治療藥物應用管理專家共識2024版解讀
- 支氣管肺炎護理查房
- 2024年湖南省高中學業水平合格性考試英語試卷真題(含答案詳解)
- JTS-T-272-1-2014沿海港口建設工程投資估算指標
- 智能云服務交付工程師認證考試題庫(網大版)-中(多選題)
- 中醫醫療技術手冊2013普及版
- 藥物合成反應-9合成設計原理
- 景區人員管理制度
- 2023年第40屆全國中學生物理競賽初賽試題及詳細解答
- 采礦學課程設計-潘三煤礦1
評論
0/150
提交評論