版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第一講 Java和面向對象概述,時間:2015年9月,電子信息工程學院 姜斌 教材:第一章(前三節(jié)),知識要點,本講著重介紹Java語言中的背景知識和基本概念。 具體涉及: 本章將簡要介紹軟件開發(fā)方法的變革 面向對象程序設計中的基本概念 介紹Java語言的特點及開發(fā)Java程序的基本步驟等 介紹Java語言特點、與C/C+的主要差異、Java程序執(zhí)行過程、Java運行環(huán)境及開發(fā)工具等基本知識。,內容概述,一、 面向對象軟件開發(fā)方法概述 二、 面向對象的基本概念 三、 Java語言概述 四、 Java主要相關技術 本章小結 思考與練習,課程前序掌握或了解的概念,軟件(Software) 軟件工程
2、(Software Engineering) 計算機程序語言(Programming Language) 信息(Information)和數據(Data) 計算機系統(tǒng)(Computer System) 數據庫系統(tǒng)(Database System),一 面向對象軟件開發(fā)方法概述,60年代至80年代,早期傳統(tǒng)的開發(fā)方法,軟件開發(fā)方法是面向過程進行開發(fā)的;因此統(tǒng)稱為面向過程的開發(fā)方法 代表語言:有Fortran, Pascal, C語言等 軟件生產率低 軟件重用程度低 軟件維護艱辛 軟件非用戶所需,1傳統(tǒng)軟件開發(fā)方法存在的問題,特點:分析出解決問題所需要的步驟,然后用函數把這些步驟一步一步實現,使用
3、的時候一個一個依次調用就可以了。 事例:五子棋 1、開始游戲,2、黑子先走, 3、繪制畫面,4、判斷輸贏, 5、輪到白子,6、繪制畫面, 7、判斷輸贏,8、返回步驟2, 9、輸出最后結果。 每一步都要走,這就是過程; 然而用戶需求的是可能變化的,因此這種變化對基于過程的設計來說是災難 。,2. 面向過程方法問題的歸因,3. 面向對象方法特點,特點:面向對象是把構成問題事務分解成各個對象,建立對象的目的不是為了完成一個步驟,而是為了描敘某個事物在整個過程中的屬性和行為。 而面向對象的設計則是從另外的思路來解決問題。對象有玩家(Player),棋盤系統(tǒng)(Chess),規(guī)則系統(tǒng)(GameRule)
4、整個五子棋可以分為: 1、黑白雙方,這兩方的行為是一模一樣的,行為有下棋,悔棋等 2、棋盤系統(tǒng),負責繪制畫面, 3、規(guī)則系統(tǒng),負責判定諸如執(zhí)先手、犯規(guī)、輸贏等。,4. 面向對象方法特點,面向對象方法(Object-oriented),以對象代表問題解的中心環(huán)節(jié),力求符合人們的思維習慣,采用“對象+消息”的程序設計模式 發(fā)展時間:90年代,發(fā)展和流行 代表語言: Java, C+, C#, VB.NET 地位:面向對象堪稱是軟件發(fā)展取得的里程碑式的偉大成就。 包括部分:面向對象分析和設計(OOAD),面向對象編碼(OOP),面向對象測試(OOT),5. 面向對象方法的主要優(yōu)點,符合人們通常的思維
5、方式,采用“對象+消息”方式,易理解性 降低或分解問題的難度和復雜性,可重用性好 日趨成熟,標準化,體系化, 標準性 主流開發(fā)方法,可維護性好,6.面向對象的軟件開發(fā)生命周期,開發(fā)一個軟件系統(tǒng)需要有多個環(huán)節(jié)的,整個構成一個生命周期(SDLC) 例子:瀑布式 作用:可有效和高效地進行軟件開發(fā)工作的組織,課件附有流行的一種生命周期過程,附2:一種典型面向對象軟件開發(fā)過程,二、 面向對象的基本概念,簡而言之: 面向對象三元素類+對象+消息 面向對象三大特性 封裝性(encapsulation) 繼承性(inheritance) 多態(tài)性 (polymorphism),1. 面向對象的基本概念,2. 面
6、向對象三元素,類(class) 類描述對象的“基本原型”,是描述性的類別或模板,即對一組對象的抽象。它定義一組對象所能擁有的靜態(tài)特征和動態(tài)行為在java中分別被稱為屬性(Attribute)和方法(Method),用以說明該組對象的能力與性質,被編譯后的類存在于class文件中。 例如,小汽車car可以被抽象成類,它描述了所有小汽車的性質,包括汽車的品牌、型號、顏色、車門數、速度,即屬性;還包括動態(tài)行為操作,如啟動、駕駛、加速、剎車等等,即方法。 別稱:屬性有時在某種語境下也被稱為字段(fields)或變量(variables) 方法有時在某種語境下被稱為行為(behaviors),一些程序員
7、或中文資料中還誤稱為(函數)。,對象(object) 對象就是現實世界中某個具體的物理實體在計算機中的映射和體現。所以一個對象把屬性和行為密封成一個整體,通過一個類作為模板可以建立多個對象,建立后的對象實例存在于內存中 例如:以Car汽車類為模板,可以創(chuàng)建hammerCar , toyotaCar對象;這兩個對象的是獨立的個體,具有各自屬性和相應方法。,new,new,萬物皆對象!,Memory,消息(message) 對象之間進行通信的一種構造叫做消息,消息傳遞是對象與其外部世界相互關聯(lián)的唯一途徑。對象可以向其他對象發(fā)出消息以請求服務,也可以響應其他對象傳來的消息。,轎車A.駕駛(),轎車A
8、.停止(),3. 面向對象的三大特性,所謂封裝又稱為信息隱蔽(Information Hiding),是面向對象的基本特征。封裝的目的在于將使用者與設計者分離,使用者不必知道操作實現的細節(jié),只需用設計者提供的消息來訪問對象。,信息隱藏的特點: 1. 在屬性值訪問上,一般屬性是私有的,提供服務的方法是公有的。 2. 內部實現受保護,提供的功能具體實現,實現細節(jié)不能夠在對象外訪問,有時也稱為內部方法。,3. 面向對象的三大特性,繼承是面向對象語言中的一種重要機制,該機制自動地為一個類提供來自另一個類的操作和屬性,這樣程序員只需在新類中定義已有類中沒有的屬性與(或)操作來建立新類。 多態(tài)性是指一個名
9、字具有多種語義,即指同一消息為不同對象所接受時,可以導致不同的操作。 除遺傳關系外,現實世界中還普遍存在著部分整體關系。例如,飛機可由發(fā)動機、機身、機械控制系統(tǒng)、電子控制系統(tǒng)等構成。聚集關系 注意Java不支持多父繼承。,三、 Java語言概述,1. 什么是java語言 2JDK三種平臺 3發(fā)展歷史 4語言特點 ,1. 什么是Java*(頁1),JAVA是Sun公司開發(fā)(該公司已經于2009年被甲骨文公司收購)的一種面對對象的語言技術,通過它用戶可以快速開發(fā)跨平臺的、高效安全的單機或網絡應用程序。,2Java 語言三種平臺簡介(頁3),Java要實現“一次寫成,多處運行”,就必須提供多個平臺
10、J2SE-java 2 standard edition 標準版,提供了標準的SDK開發(fā)平臺(也稱為JDK),可開發(fā)低端java用于小型 J2MEjava 2 micro edition 微型版, 用于java的移動應用開發(fā),適應于目前比較流行的嵌入式開發(fā) J2EEjava 2 enterprise edition 企業(yè)版,用于構建企業(yè)級的服務應用,J2EE平臺包括J2SE平臺,并附加了企業(yè)級開發(fā)的類庫。,3Java 語言的發(fā)展歷史(頁1),1991: James Gosling,Bill Joy等人一起從事Green Project中、 產生新的語言Oak, 1994下半年: WWW迅速發(fā)展
11、,得到Sun公司的支持,通過Oak開發(fā)的HotJava瀏覽器得到關注;隨后Oak改名Java。 1995: Java作為SUN公司開發(fā)工具產品,正式發(fā)布 最早是1.0,Java語言自1995年問世以來不斷發(fā)展,開發(fā)平臺的版本已經從早先的JDK 1.0發(fā)展到JDK 1.2.0,到當前廣泛應用的JDK 1.5.0,以及SUN最后開發(fā)的JDK 1.6.0 。Java語言的每一個版本的推出,都是對自身不足的克服和完善。它日益成為網絡應用的一支強有力的技術力量。(注意從Java1.5后,Java的版本又分成內部版本和外部版本,例如:1.5.0也稱為5.0版,1.7.0也稱為7.0) 具有大改變的版本(內
12、部版本) 1.1 1.2 1.5.0 1.7.0,3Java 語言版本發(fā)展,3Java 語言版本發(fā)展,注意:2011年,由于Oracle收購了Sun公司,7.0和其他早期版本JDK,JRE下載 都在Oracle的官網上,網站如下: ,Java(SUN)和.NET(M$)所屬系列語言是開發(fā)兩大陣營。 在目前流行的B/S開發(fā)中,Java和.NET兩種開發(fā)環(huán)境是兩大陣營體系;而Java比后者具有更顯著的可移植性,跨平臺性,而且很多java項目往往是基于自由組織開發(fā)(GNU)協(xié)議的免費項目,可以自由地被用戶項目所引用。,4Java 語言的應用前景,5. Java語言的特點(P 2),簡單性 面向對象
13、分布式處理 健壯性 結構中立 安全性,系統(tǒng)精簡,但功能齊備。 風格類似于C+,對C+程序員而言非常容易掌握。 Java摒棄了C+中容易引發(fā)程序錯誤的地方,如指針操作和內存管理; 提供豐富的類庫。,完全是面向對象的,它不支持類似C語言那樣的面向過程的程序設計技術。,支持TCP/IP協(xié)議。Java應用程序可通過一個特定的URL來打開并訪問對象,就像訪問本地文件系統(tǒng)那樣簡單。,提供面向對象的異常處理機制,在編譯時能對Null指針檢測、數組邊界檢測、異常出口字節(jié)代碼校驗等。 自動垃圾收集來進行內存管理。,將源程序編譯成一種結構中立的中間文件格式。只要有Java運行系統(tǒng)的機器都能執(zhí)行這種中間代碼。,Ja
14、va語言提供的安全。 編譯器提供的安全。 字節(jié)碼校驗。,5.Java語言的特點,可移植性 解釋性 高性能 多線程 動態(tài),Java應用程序可以在配備了Java解釋器和運行環(huán)境的任何計算機系統(tǒng)上運行,而與體系結構無關。,Java編譯器將java源文件生成類文件.class,類文件可通過java命令解釋執(zhí)行,將Java字節(jié)碼轉換為機器碼。,JIT編譯器??梢蕴岣?Java 代碼的執(zhí)行速度。,內置多線程功能,使得在一個程序里可同時執(zhí)行多個小任務。帶來的好處是更好的交互性和實時控制性。,允許程序動態(tài)地裝入運行過程中所需要的類,這是C+語言進行面向對象程序設計所無法實現的。,Java虛擬機(JVM) 軟件
15、虛擬的計算機, SUN公司提供各個操作系統(tǒng)上的Java虛擬機 Java服務器端技術 - JSP/Servlet等技術為代表的服務器,5.Java 特點引申,6. Java程序的執(zhí)行過程,首先在某個操作系統(tǒng)下用編輯器編寫代碼,保存源代碼(.java),然后對編寫的代碼進行編譯產生字節(jié)碼文件(.class) 編譯后的程序其執(zhí)行過程為: 載入:Java的類載入器負責把程序中的所有字節(jié)碼文件都加載到內存中。這些被裝入內存的字節(jié)碼文件可以保持在硬盤的當前目錄下; 代碼校驗:字節(jié)碼全部載入內存后,Java的代碼校驗器開始檢查這些字節(jié)碼的合法性; 解釋執(zhí)行:通過了代碼校驗的二進制字節(jié)碼程序被交給解釋器逐句的
16、解釋并運行。,圖1. Java程序運行過程和編譯型程序運行過程對比,字節(jié)碼程序,二進制,運行,二進制,二進制,Linux平臺,圖2. Java虛擬機和跨平臺解釋運行,Unix平臺,Windows平臺,解釋器,JVM(虛擬機),Java在基本類庫中,提供了大量的類以滿足網絡化、多線程、面向對象系統(tǒng)的需要,類庫包含有類包,例如:類包有:java.lang, java.io, , java.awt, java.util等等。,7豐富的類庫(P 4),對于變量聲明、參數傳遞、操作符、流控制等,Java使用了和C、C+相同的傳統(tǒng),使得熟悉C、C+的程序員能很方便地進行編程。同時,Java為了實現其簡單、
17、魯棒、安全等特性,也摒棄了C和C+中許多不合理的內容,例如多父繼承,運算符重載。,8. Java和C、C+,實踐:第一個Java程序,像一個Baby在世界發(fā)出第一聲叫聲一樣; 我們一起做一個Java程序HelloWORLD; 對它進行編輯,編譯,解釋運行工作,看看虛擬機的工作過程;,I am Cindy,1 month old,創(chuàng)建簡單的Java程序,代碼分析,行1為注釋。 行2定義了用戶自定義類HelloWorld。 行2和行6的花括號對定義了代碼塊,其中的代碼為類HelloWorld的實現。 行3定義了類HelloWorld的一個成員,即名為main的方法。main()方法是使用stati
18、c修飾符聲明的靜態(tài)方法,將作為程序的入口點。 行3和行5的花括號對定義了代碼塊,其中的代碼為main()方法的實現。 行4通過調用System.out.println(Hello World!),在控制臺上輸出字符串:Hello World!。,編譯和運行結果,javac HelloWorld.java 產生一個名HelloWorld.class的文件,即字節(jié)碼的類文件 運行應用程序 java HelloWorld 輸出結果: Hello World!,四、 Java語言相關重要概念,1.Java的應用程序類型(P 3),它適于: 跨平臺/多平臺的應用程序 基于Web的分布式網絡應用程序(B/S) 基于GUI的應用程序 企業(yè)級應用程序 多線程應用程序 關鍵任務的(數據庫)應用程序 分布式網絡應用程序 手機移動應用程序 隨著技術發(fā)展,Java和其他語言各有新技術納入到體系,2.Java核心概念,1). JDK (Java Development Kit) (P 5) 即java開發(fā)環(huán)境。JDK是Sun公司開發(fā)的一個免費的Java開發(fā)工具集,提供了Java開發(fā)、運行和測試一體的環(huán)境,它包含完整的JRE 2). JRE (Java Runtime Environment) (P 4) 即Java運行環(huán)境。JRE只是Java的運行環(huán)境
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個人住宅托管租賃合同4篇
- 2025年度倉儲物流租賃合同范本8篇
- 2025年度個人教育培訓居間服務合同模板2篇
- 2025年中國變色書簽筆行業(yè)市場發(fā)展前景及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 2025年中國潤腸通便茶行業(yè)投資研究分析及發(fā)展前景預測報告
- 酒店合同管理制度范本
- 2025年度校園蟲害防治與衛(wèi)生管理合同4篇
- 23-24年項目管理人員安全培訓考試題附下載答案可打印
- 二零二五年度教育園區(qū)物業(yè)安全管理與服務合同范本3篇
- 23年-24年員工三級安全培訓考試題及完整答案【考點梳理】
- SYT 6968-2021 油氣輸送管道工程水平定向鉆穿越設計規(guī)范-PDF解密
- 冷庫制冷負荷計算表
- 肩袖損傷護理查房
- 設備運維管理安全規(guī)范標準
- 辦文辦會辦事實務課件
- 大學宿舍人際關系
- 2023光明小升初(語文)試卷
- GB/T 14600-2009電子工業(yè)用氣體氧化亞氮
- 申請使用物業(yè)專項維修資金征求業(yè)主意見表
- 房屋買賣合同簡單范本 房屋買賣合同簡易范本
- 無抽搐電休克治療規(guī)范
評論
0/150
提交評論