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