




已閱讀5頁,還剩50頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
面向?qū)ο蟪绦蛟O(shè)計(jì)O OProgramming 機(jī)電學(xué)院楊靜萍2013 2014 1 內(nèi)容提要 現(xiàn)實(shí)世界 概念世界 計(jì)算機(jī)世界面向過程vs 面向?qū)ο竺嫦驅(qū)ο蟪绦蛘Z言Java的面向?qū)ο筇匦訨ava語言入門 現(xiàn)實(shí)世界 現(xiàn)實(shí)世界 實(shí)體 每個(gè)實(shí)體都有自己的狀態(tài) 特征 屬性 和行為 Jack特征 姓名 Jack 國藉 美國 性別 男 出生年月 1975 03 19 家電84640338 住址 大連市沙河口區(qū) 職業(yè) DJ Jack行為 跑 跳 唱 改名 改家電 改住址 Mary特征 姓名 Mary 國藉 澳州 性別 女 出生年月 1978 02 10 家電87652313 住址 大連市開發(fā)區(qū) 職業(yè) DJ Mary行為 跑 跳 唱 改名 改家電 改住址 概念世界 類型 以上Jack Mary在特定的應(yīng)用環(huán)境下可以被抽象為特定類型 DJ 假設(shè)我們需要建立一個(gè)通訊錄應(yīng)用 則抽象 狀態(tài)和行為有取舍 結(jié)果可為 DJ類 狀態(tài)特征 姓名 家電 住址 行為 改名 改家電 改住址注意 根據(jù)解決問題相關(guān)的 需要有取舍的抽象 計(jì)算機(jī)世界 類 將抽象數(shù)據(jù)類概念轉(zhuǎn)為計(jì)算機(jī)語言描述 DJ類 封裝結(jié)構(gòu) 用變量表示狀態(tài) 用方法表示行為 計(jì)算機(jī)世界 對(duì)象 以類作為模板創(chuàng)建對(duì)象 面向過程vs 面向?qū)ο?面向過程傳統(tǒng)程序 如C語言程序 算法 數(shù)據(jù)結(jié)構(gòu)面向?qū)ο笕鏑 Java程序 對(duì)象 消息 面向?qū)ο缶幊痰膬?yōu)點(diǎn) 1 符合人們對(duì)客觀世界的認(rèn)識(shí)規(guī)律2 對(duì)需求變化具有很強(qiáng)的適應(yīng)性3 支持軟件復(fù)用4 可維護(hù)性好 面向?qū)ο蟪绦蛘Z言 C 是一個(gè)強(qiáng)大的面向?qū)ο笳Z言 可以高效的調(diào)用操作系統(tǒng)的API進(jìn)行系統(tǒng)級(jí)的軟件開發(fā) 應(yīng)用領(lǐng)域包括網(wǎng)絡(luò)通訊 網(wǎng)絡(luò)安全 網(wǎng)絡(luò)游戲服務(wù)端開發(fā) 行業(yè)應(yīng)用軟件服務(wù)端應(yīng)用等等 netFramework NET系統(tǒng)包括一個(gè)相當(dāng)廣泛的產(chǎn)品家族 C VB net ASP net 為用戶提供Web服務(wù)的開發(fā) 管理和應(yīng)用環(huán)境 微軟為 NET提供了高效實(shí)用的開發(fā)工具 所以 NET的開發(fā)效率較高 但應(yīng)用有平臺(tái)限制 基本只能在Window平臺(tái)應(yīng)用 Java具有平臺(tái)無關(guān)性 安全性 分布式和健壯性等特點(diǎn) 比較適合企業(yè)級(jí)的開發(fā)應(yīng)用 比如行業(yè)業(yè)務(wù)支撐軟件 電信 金融 電力 教育 等眾多領(lǐng)域 Java的面向?qū)ο筇匦?簡單性 C 的純凈版本面向?qū)ο?分布性 網(wǎng)絡(luò)技能魯棒性 永遠(yuǎn)不會(huì)存取一個(gè) 壞的 指針安全性 不直接訪問硬件體系結(jié)構(gòu)中立 最顯著的優(yōu)勢(shì)可移植性 不依賴具體實(shí)現(xiàn)解釋執(zhí)行 依賴解釋器 運(yùn)行環(huán)境 平臺(tái)獨(dú)立高性能 虛擬機(jī)性能已大大加強(qiáng)多線程 依賴底層操作系統(tǒng)或線程庫實(shí)現(xiàn) 動(dòng)態(tài)性 可以將代碼添加到正在運(yùn)行的程序中 Java語言入門 Java程序設(shè)計(jì)環(huán)境Java基本的程序設(shè)計(jì)結(jié)構(gòu)Java的對(duì)象與類Java的繼承Java的集合異常 日志 斷言和調(diào)試 Java程序設(shè)計(jì)環(huán)境 文本編輯器 JDK記事本編寫程序安裝Java開發(fā)工具箱 JavaDevelopmentKit JDK JavaSEDevelopKit 6u18 使用集成開發(fā)環(huán)境NetbeansEclipseJBuilderOracleJDeveloper Java基本的程序設(shè)計(jì)結(jié)構(gòu) 一個(gè)簡單的Java應(yīng)用程序注釋數(shù)據(jù)類型變量和常量運(yùn)算符枚舉類型EnumSample字符串StringSample控制流程ControlFlowSample數(shù)組 ArraySample Java基本數(shù)據(jù)類型 Java是一種強(qiáng)類型語言 意味著每一個(gè)變量聲明一種類型 共有8種基本類型 整型int 4字節(jié) short 2字節(jié) long 8字節(jié) byte 1字節(jié) 浮點(diǎn)型float 4字節(jié) double 8字節(jié) 特殊的浮點(diǎn)數(shù) Double POSITIVE INFINITY Double NEGTIVE INFINITY Double NaNchar類型 單個(gè)字符 Unicode字符表 Boolean類型false和true 變量和常量 變量聲明 以 結(jié)束 變量初始化 變量名必須以字母開頭 一般首字母小寫 空格和一些特殊符號(hào)不能出現(xiàn)在變量名中 利用關(guān)鍵字 final 聲明常量 常量一般用大寫字母表示 運(yùn)算符 自增 減 運(yùn)算符關(guān)系運(yùn)算符與boolean運(yùn)算符 三元操作 如 x y x y 括號(hào)和運(yùn)算符具有一定的優(yōu)先級(jí)別 詳見相關(guān)資料 枚舉類型 變量的取值只在一個(gè)有限的集合內(nèi) 從JDK5 0開始 增加了該類型 字符串 字符串類子串拼接不可變字符串檢測字符串是否相等字符串長度與字符位置 控制流程 塊及其作用域條件語句 if循環(huán)語句 while dowhile循環(huán)語句 for多重選擇 switch中斷控制流程語句 條件語句 if 循環(huán)語句 while 循環(huán)語句 dowhile 循環(huán)語句 for 確定性循環(huán) 多重選擇 switch 數(shù)組 Java的對(duì)象與類 Java的類庫 API 自定義類 Student構(gòu)造器隱式參數(shù)和顯式參數(shù)封裝與作用域?qū)ο髽?gòu)造包 Java的類庫 API java io 輸入輸出 流操作java math 數(shù)學(xué)公式 網(wǎng)絡(luò)編程socketjava rmi 遠(yuǎn)程方法調(diào)用Namingjava sql 數(shù)據(jù)庫操作java text 數(shù)據(jù)格式Formatjava util 常用類Array List Collections Calender 構(gòu)造器 與類同名在構(gòu)造類的對(duì)象時(shí)被執(zhí)行 new 每個(gè)類可有一個(gè)或以上的構(gòu)造器構(gòu)造器可有0個(gè)或以上的參數(shù)構(gòu)造器沒有返回值 隱式參數(shù)和顯式參數(shù) 隱式參數(shù) 方法前 對(duì)象名 通過new生成關(guān)鍵字this 在類的方法中調(diào)用類對(duì)象顯式參數(shù)方法的參數(shù) 括號(hào)中 封裝與作用域 數(shù)據(jù)域 私有private域訪問器方法 公有public域更改器方法 公有public private 私有方法 類內(nèi)使用 可改可刪 public 公有方法 一般不能改或刪 final 初始化后不能改變static 靜態(tài)域 方法 屬于類的域 方法 由類名直接調(diào)用staticfinal 靜態(tài)常量Factory 方法沒有構(gòu)造器 直接得到一個(gè)實(shí)例Main 方法不需要使用對(duì)象調(diào)用靜態(tài)方法 對(duì)象構(gòu)造 重載 一個(gè)類有多個(gè)構(gòu)造器 一個(gè)方法有不同種類參數(shù)Student構(gòu)造器1 構(gòu)造器2 setId 默認(rèn)域初始化 0 數(shù)值 false 布爾 null 對(duì)象 默認(rèn)構(gòu)造器 所有域?yàn)槟J(rèn)初始值 顯式域初始化 TestStudent參數(shù)命名 避免單個(gè)字符 n m 在構(gòu)造器中調(diào)用另一個(gè)構(gòu)造器 Student初始化塊 Student對(duì)象垃圾回收 自動(dòng)回收 close 方法 包 package 類的組織 包結(jié)構(gòu)將包的名字放在源文件的開頭 packagecom horstmann corejava將類的源文件 java放入包中包作用域public 可以被任意類調(diào)用 protected 可以被包內(nèi)類調(diào)用 private 可以被類或子類調(diào)用 類的導(dǎo)入完整包名 java util Datedate newjava util Date 引入特定類 importjava util Date 引入整個(gè)包 importjava util Java的繼承 Inheritance 類 超類和子類多態(tài)和動(dòng)態(tài)綁定抽象類與接口 類之間的繼承關(guān)系是現(xiàn)實(shí)世界中遺傳關(guān)系的直接模擬 它表示類之間的內(nèi)在聯(lián)系以及對(duì)屬性和操作的共享 即子類可以沿用父類 被繼承類 的某些特征 當(dāng)然 子類也可以具有自己獨(dú)立的屬性和操作 Inheritance 類 超類和子類 superclass 超 基 父類subclass 子 派生類關(guān)系 子類is a超類定義關(guān)鍵字 extends子類與父類的調(diào)用 thisvs super阻止繼承和覆蓋 final類和方法 繼承層次Inheritancehierarchy 1 子類不能訪問父類的private成員 但子類可以訪問其父類的public 3 被繼承的父類成員雖然沒有在子類聲明中列出 但是這些成員確實(shí)存在于子類中 多態(tài) Polymorphism 提高了程序可擴(kuò)充性 調(diào)用多態(tài)性行為的軟件傳送給對(duì)象的消息 即方法調(diào)用 與對(duì)象的類型無關(guān) 因此能響應(yīng)已有消息的新類型可以直接加入系統(tǒng) 而不用修改基本系統(tǒng) 多態(tài)和動(dòng)態(tài)綁定 多態(tài) Polymorphism 把不同的子類對(duì)象都當(dāng)作父類來看 可以屏蔽不同子類對(duì)象之間的差異 寫出通用的代碼 做出通用的編程 以適應(yīng)需求的不斷變化 如果程序需要一個(gè)超類對(duì)象 都可以用一個(gè)子類對(duì)象來代替 動(dòng)態(tài)綁定重載 overload 參數(shù) 覆蓋 override 子類 抽象類與接口 抽象類 abstractclass 含有一個(gè)或以上抽象方法的類 抽象類不能被實(shí)例化 不能通過new生成對(duì)象 子類用extends關(guān)鍵字繼承抽象類 Person 接口 interface 對(duì)符合接口需求的類的一套規(guī)范 可以實(shí)現(xiàn)多繼承功能 用implement關(guān)鍵字實(shí)現(xiàn)接口 接口中的屬性都是用final修飾的常量 在這個(gè)類中 所有的成員函數(shù)都是抽象的 也就是說它們都只有說明沒有定義 接口中的方法都是用abstract修飾的抽象方法 在接口中只能給出這些抽象方法的方法名 返回值和參數(shù)列表 而不能定義方法體 即僅僅規(guī)定了一組信息交換 傳輸和處理的接口 Java的集合 集合概述集合框架集合接口集合類 集合概述 什么是Java中的集合 一種數(shù)據(jù)結(jié)構(gòu)表達(dá)一組數(shù)據(jù)序列無序 有序鍵 值 鏈表 循環(huán)數(shù) i j 隊(duì)列 棧 集合框架 集合接口 Collection接口Iterator接口List接口Set接口Map接口 Collection接口 無重復(fù) 無序 順序訪問的集合方法 Iteratoriterator 迭代器方法 booleanadd 添加元素方法 intsize 返回集合中元素的個(gè)數(shù) booleanisEmpty 判斷集合是否為空 booleancontains Objectobj 判斷集合是否包含某元素 booleanremove Objectobj 刪除集合中的元素 voidclear 清空集合 Object toArray 集合中的對(duì)象列表變成數(shù)組形式 Iterator接口 以迭代方式逐個(gè)訪問集合中各個(gè)元素 并安全的從Collection中除去適當(dāng)?shù)脑?方法 booleanhasNext 判斷是否到最后一個(gè)元素 Objectnext 順序取出下一個(gè)元素 voidremove 安全移除上次訪問的元素 與next 方法配合使用 List接口 繼承了Collection接口以定義一個(gè)允許重復(fù)項(xiàng)的有序集合 該接口不但能夠?qū)α斜淼囊徊糠诌M(jìn)行處理 還添加了面向位置的操作 方法 voidadd intindex Objectobj 在指定位置index上添加元素 Objectget intindex 返回List中指定位置的元素intindexOf Objecto 返回第一個(gè)出現(xiàn)元素o的位置 否則返回 1 Objectset intindex Objectelement 用元素element取代位置index上的元素 并且返回舊的元素 Set接口 Set接口繼承Collection接口 而且它不允許集合中存在重復(fù)項(xiàng) 每個(gè)具體的Set實(shí)現(xiàn)類依賴添加的對(duì)象的equals 方法來檢查獨(dú)一性 Set接口沒有引入新方法 所以Set就是一個(gè)Collection 只不過其行為不同 Map接口 Map接口不是Collection接口的繼承 Map接口用于維護(hù)鍵 值對(duì) key valuepairs 該接口描述了從不重復(fù)的鍵到值的映射 Objectput Objectkey Objectvalue 將互相關(guān)聯(lián)的一個(gè)關(guān)鍵字與一個(gè)值放入該映像 如果該關(guān)鍵字已經(jīng)存在 那么與此關(guān)鍵字相關(guān)的新值將取代舊值 方法返回關(guān)鍵字的舊值 如果關(guān)鍵字原先并不存在 則返回nullObjectremove Objectkey 從映像中刪除與key相關(guān)的映射Objectget Objectkey 獲得與關(guān)鍵字key相關(guān)的值 并且返回與關(guān)鍵字key相關(guān)的對(duì)象 如果沒有在該映像中找到該關(guān)鍵字 則返回null 集合類 ArrayList和LinkedListHashSet和TreeSetHashMap和TreeMapVector ArrayList和LinkedList ArrayList類封裝了一個(gè)動(dòng)態(tài)再分配的Object 數(shù)組 每個(gè)ArrayList對(duì)象有一個(gè)capacity 這個(gè)capacity表示存儲(chǔ)列表中元素的數(shù)組的容量 LinkedList支持頻繁的從列表的中間位置添加和除去元素 而只要順序的訪問列表元素 HashSet和TreeSet 使用HashSet存儲(chǔ)重復(fù)自由的集合 當(dāng)需要從集合中以有序的方式插入和抽取元素時(shí) 使用TreeSet HashMap和TreeMap 在Map中插入 刪除和定位元素 HashMap是最好的選擇 但如果您要按自然順序或自定義順序遍歷鍵 那么TreeMap會(huì)更好 使用HashMap要求添加的鍵類明確定義了hashCode 和equals 的實(shí)現(xiàn) Vector Vector類可以實(shí)現(xiàn)可增長的對(duì)象數(shù)組 與數(shù)組一樣 它包含可以使用整數(shù)索引進(jìn)行訪問的組件 但是 Vector的大小可以根據(jù)需要增大或縮小 以適應(yīng)創(chuàng)建Vector后進(jìn)行添加或移除項(xiàng)的操作 異常處理 exceptionhandling 異常原因和處理需求Java異常層次結(jié)構(gòu)異常聲明與拋出捕獲異常 異常原因和處理需求 異常原因 用戶輸入錯(cuò)誤設(shè)備 服務(wù)錯(cuò)誤 物理限制代碼錯(cuò)誤處理需求向用戶通告錯(cuò)誤恢復(fù)或保存所有的操作結(jié)果允許用戶以適當(dāng)?shù)男问酵顺龀绦?Java異常層次結(jié)構(gòu) 內(nèi)部錯(cuò)誤和資源耗盡錯(cuò)誤 程序?qū)е碌腻e(cuò)誤 錯(cuò)誤的類型轉(zhuǎn)換 數(shù)組訪問越界 訪問空指針 文件讀取錯(cuò)誤 URL格式錯(cuò)誤 類不存在 檢測數(shù)組下標(biāo)是否越界非空判斷 通告用戶 安全退出 異常聲明與拋出 編寫程序不
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 乳制品質(zhì)量保證及檢測控制措施
- 醫(yī)療科研人員廉潔從業(yè)九項(xiàng)準(zhǔn)則心得體會(huì)
- 水上運(yùn)動(dòng)場夏季高溫安全措施他
- 小型企業(yè)財(cái)務(wù)風(fēng)險(xiǎn)控制制度及流程他
- 蘇教版六年級(jí)科學(xué)上冊(cè)實(shí)驗(yàn)操作計(jì)劃
- 公務(wù)員反腐倡廉自查心得體會(huì)
- 大型工程總包與分包協(xié)作措施
- 經(jīng)典誦讀興趣小組師生互動(dòng)計(jì)劃
- 七年級(jí)學(xué)生體育成績提升計(jì)劃
- 控感科項(xiàng)目驗(yàn)收流程
- 候診廳衛(wèi)生管理制度
- 超市導(dǎo)購人員管理制度
- 阻塞性肺部疾病護(hù)理查房
- 2024年4月自考00228環(huán)境與資源保護(hù)法學(xué)試題及答案
- 設(shè)備物資管理培訓(xùn)
- 汽車漆面保護(hù)膜維護(hù)考核試卷
- 公司事故隱患內(nèi)部報(bào)告獎(jiǎng)勵(lì)制度
- 2025年中考英語作文預(yù)測及滿分范文11篇
- 集成電路測試指南
- 工程總承包管理制度
- 2025年云南新華印刷五廠有限責(zé)任公司招聘筆試參考題庫含答案解析
評(píng)論
0/150
提交評(píng)論