版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、余化 2013-07-10主要內(nèi)容主要內(nèi)容Java Web 開發(fā)環(huán)境搭建Java專題n Java特性n 接口n Java集合n 反射機(jī)制 Java編程規(guī)范 Java常用框架步驟1:安裝java jdkn 版本要求:jdk1.6+n 下載地址: http:/ 安裝步驟2:安裝java集成開發(fā)工具eclipsen 下載地址:/downloads/選擇 Eclipse IDE for Java EE Developers, 246 MBn 配置環(huán)境變量JRE_HOME,值為jdk安裝目錄下jre步驟3:安裝tomcatn 版本要求 tomcat 6+n 下載
2、地址:/download-70.cgin 解壓即可n 配置端口和編碼方式文件路徑: apache-tomcat-7.0.11 confserver.xml修改 步驟4(可省):安裝eclipse tomcat 下載地址:http:/ eclipse安裝插件一般方法:方法1:解壓到 eclipseplugins目錄下重啟eclipse方法2:使用link文件方法3:遠(yuǎn)程update步驟5:安裝SVN下載地址: http:/ gap)。定義:對(duì)象是一個(gè)實(shí)體,他能夠保持狀態(tài)(定義:對(duì)象是一個(gè)實(shí)體,他能夠保持狀態(tài)(信息);并提供了一系列的操作,來檢查信息)
3、;并提供了一系列的操作,來檢查或者影響這些狀態(tài)或者影響這些狀態(tài)對(duì)象提供了一組操作和狀對(duì)象提供了一組操作和狀態(tài)信息。態(tài)信息。我們可以以此為依據(jù)來區(qū)我們可以以此為依據(jù)來區(qū)別不同的對(duì)象。別不同的對(duì)象。 類 對(duì)現(xiàn)實(shí)世界實(shí)體的抽象定義 對(duì)象 對(duì)應(yīng)現(xiàn)實(shí)世界的實(shí)體 類是對(duì)象的抽象 對(duì)象是類的實(shí)例n通常,封裝是針對(duì)類而言:l 隱藏類的實(shí)現(xiàn)細(xì)節(jié)(如字段值的運(yùn)算和訪問)l 強(qiáng)制訪問者使用接口來訪問數(shù)據(jù)內(nèi)部特性內(nèi)部特性外部特性外部特性 行為(behavior):改變信息結(jié)構(gòu)或者執(zhí)行功能。 屬性:對(duì)象的信息結(jié)構(gòu)。關(guān)聯(lián):靜態(tài)關(guān)系組成:組成部分 操作(operation):我們僅僅能夠看到對(duì)象提供的操作,而對(duì)象的內(nèi)部對(duì)我
4、們是不可見的?!?信息隱藏“ 未封裝類存在的問題訪問者直接訪問類的內(nèi)部數(shù)據(jù):MyDate d = new MyDate();d.day = 32; / 無效日期d.month = 2; d.day = 30;d.day = d.day + 1; / 無效日期運(yùn)算 封裝的解決方案訪問者必須使用set和get方法來訪問內(nèi)部數(shù)據(jù):MyDate d = new MyDate();d.setDay(32); / 無效日期,返回falsed.setMonth(2);d.setDay(30); / 無效日期,返回falsed.setDay(d.getDay() + 1); / 無效日期運(yùn)算,返回falsen
5、訪問控制修飾符可用來修飾類的成員,以達(dá)到控制其被他人訪問的目的。nJava語言提供了四種訪問控制修飾符:定義:繼承是也一個(gè)非?;A(chǔ)的定義:繼承是也一個(gè)非常基礎(chǔ)的OO設(shè)計(jì)的概設(shè)計(jì)的概念,這種技術(shù)最本質(zhì)的特性是消除冗余。念,這種技術(shù)最本質(zhì)的特性是消除冗余。l繼承發(fā)生在類之間,與現(xiàn)繼承發(fā)生在類之間,與現(xiàn)實(shí)世界的繼承類似。實(shí)世界的繼承類似。l被繼承者稱為父類(或超被繼承者稱為父類(或超類),繼承者稱為子類。類),繼承者稱為子類。l子類將繼承父類的所有成子類將繼承父類的所有成員(構(gòu)造器除外)員(構(gòu)造器除外)。l單繼承單繼承不使用繼承情形使用繼承情形多態(tài)是指一個(gè)對(duì)象具有多種形態(tài)。例如:Employee e
6、 = new Manager(); 此對(duì)象既具有父類Employee的形態(tài),又具有子 類Manager的形態(tài)。重載重載(Overloading) Java的方法重載,就是在類中可以創(chuàng)建多個(gè)方法,它們具有相同的名字,但具有不同的參數(shù)和不同的定義。調(diào)用方法時(shí)通過傳遞給它們的不同參數(shù)個(gè)數(shù)和參數(shù)類型來決定具體使用哪個(gè)方法, 這就是多態(tài)性。 重載的時(shí)候,方法名要一樣,但是參數(shù)類型和個(gè)數(shù)不一樣,返回值類型可以相同也可以不相同。無法以返回型別作為重載函數(shù)的區(qū)分標(biāo)準(zhǔn)重載例子重載例子重寫重寫(Overriding)l父類與子類之間的多態(tài)性,對(duì)父類的函數(shù)進(jìn)行重新定義。l子類中定義某方法與其父類有相同的名稱和參數(shù)。
7、l方法重寫又稱方法覆蓋。 重寫例子重寫例子 此對(duì)象既具有父類Dog的形態(tài),又具有子 類WolfDog的形態(tài)。 使用父類類型的引用指向子類的對(duì)象 該引用只能調(diào)用父類中定義的方法和變量 如果子類中重寫了父類中的一個(gè)方法,那么在調(diào)用這個(gè)方法的時(shí)候,將會(huì)調(diào)用子類中的這個(gè)方法(動(dòng)態(tài)連接、動(dòng)態(tài)調(diào)用)面向?qū)ο螅菏且环N系統(tǒng)建模方法,提供一系列的概念來更好的實(shí)現(xiàn)系統(tǒng)開發(fā)的目標(biāo)面向?qū)ο螅菏且环N系統(tǒng)建模方法,提供一系列的概念來更好的實(shí)現(xiàn)系統(tǒng)開發(fā)的目標(biāo)對(duì)象:是一個(gè)實(shí)體,他能夠保存信息結(jié)構(gòu),并提供一系列的操作來改變這些方法對(duì)象:是一個(gè)實(shí)體,他能夠保存信息結(jié)構(gòu),并提供一系列的操作來改變這些方法; ;類:類是面向相同特征的
8、一組對(duì)象的描述。類:類是面向相同特征的一組對(duì)象的描述。繼承:他抽取了多個(gè)類的共性的特征,并實(shí)現(xiàn)了概括處理,供多個(gè)類來共享。繼承:他抽取了多個(gè)類的共性的特征,并實(shí)現(xiàn)了概括處理,供多個(gè)類來共享。封裝:我們僅僅能夠看到對(duì)象的接口,也稱為我們可以面向?qū)ο髨?zhí)行的操作。封裝:我們僅僅能夠看到對(duì)象的接口,也稱為我們可以面向?qū)ο髨?zhí)行的操作。多態(tài)多態(tài):允許不同類的對(duì)象對(duì)同一消息作出響應(yīng)。:允許不同類的對(duì)象對(duì)同一消息作出響應(yīng)。...n接口就是方法定義(沒有方法的實(shí)現(xiàn))和常量值的集合 。nimplements和extendsl一個(gè)類僅僅繼承接口中的常量。l一個(gè)類不能繼承接口
9、中的方法。n抽象抽象public interface DataSource extends CommonDataSource,Wrapper Connection getConnection() throws SQLException; Connection getConnection(String username, String password) throws SQLException;n多實(shí)現(xiàn)多實(shí)現(xiàn)public interface PatrolManagerpublic class PatrolManagerImpl implements PatrolManagerpublic cla
10、ss CustomPatrolManagerImpl implements PatrolManagern 多繼承多繼承p u b l i c a b s t r a c t c l a s s A b s t r a c t P r o p e r t y A c c e s s o r e x t e n d s PropertyEditorRegistrySupportimplements ConfigurablePropertyAccessorn數(shù)組l長度不可變化l無法保存具有映射關(guān)系的數(shù)據(jù)(如:語文-87)l元素既可以是基本類型的值,也可以是對(duì)象n集合l保存數(shù)量不確定的數(shù)據(jù)l保存具有映
11、射關(guān)系的數(shù)據(jù)(也稱為關(guān)聯(lián)數(shù)組)l只能保存對(duì)象集合的家族圖譜集合的家族圖譜不按順序保存元素,不可重復(fù)按順序保存元素,可重復(fù)Set:不按順序存放,不可重復(fù)List:按順序存放,可重復(fù)Map:鍵值對(duì) Set中的元素必須唯一。不允許有重復(fù)的元素。不重復(fù)是指集合中任意2個(gè)對(duì)象x和y,x.equals(y)始終為false。 List接口定義了一個(gè)有序的對(duì)象集合,允許重復(fù)元素存在。 List類似于動(dòng)態(tài)數(shù)組或變長數(shù)組。List中存放的元素的數(shù)量(List的容量)可以隨著插入操作自動(dòng)進(jìn)行調(diào)整。 Collection接口表示的是單一對(duì)象的集合;即每個(gè)位置保存的是單一的對(duì)象 Map中保存關(guān)鍵字-值這種形式的對(duì)象。
12、定義:JAVA反射機(jī)制是在運(yùn)行狀態(tài)中(注意不是編譯的時(shí)候) ,對(duì)于任意一個(gè)類,都能夠知道這個(gè)類的所有屬性和方法;對(duì)于任意一個(gè)對(duì)象,都能夠調(diào)用它的任意一個(gè)方法和屬性。 n 在運(yùn)行時(shí)判斷任意一個(gè)對(duì)象所屬的類; list.getClass().getCanonicalName();n 在運(yùn)行時(shí)構(gòu)造任意一個(gè)類的對(duì)象;Class classType = Class.forName(className); classType.newInstance();n 在運(yùn)行時(shí)判斷任意一個(gè)類所具有的成員變量和方法; Method methods = classType.getDeclaredMethods(); Fi
13、eld fields = classType.getDeclaredFields();n 在運(yùn)行時(shí)調(diào)用任意一個(gè)對(duì)象的方法;obj.getClass().getMethod(name, parameterTypes).invoke(obj, args);n根據(jù)反射機(jī)制寫一個(gè)java對(duì)象轉(zhuǎn)化為json字符串的程序,為了簡化編程,java對(duì)象的屬性限定為原始類型。public static String easyJavaBeanToJsonString(Object obj);nExcel導(dǎo)出public static excelExport(List list);標(biāo)識(shí)符類型命名規(guī)則例子包1.全部小
14、寫的ASCII字母2.頂級(jí)包名+模塊名+分類名 3.分類名包括web,dao,dao.impl,bean等.egova.mis.desktop.dao類1.用大小寫混合的方式2.每個(gè)單詞的首字母大寫。3.后綴包括 Controller,ManagerImpl,Utils等HumanConfigManagerImplStringUtils接口1.大小寫規(guī)則與類名相似interface HumanConfigManager方法1.采用大小寫混合的方式,第一個(gè)單詞的首字母小寫。其后單詞的首字母大寫。2.采用動(dòng)賓結(jié)構(gòu)定義。public List getHumanRoles(int humanID);變
15、量1.除了變量名外,所有實(shí)例,包括類,類常量,均采用大小寫混合的方式,第一個(gè)單詞的首字母小寫,其后單詞的首字母大寫。2.變量名不應(yīng)以下劃線或美元符號(hào)開頭 String address;常量1.應(yīng)該全部大寫,單詞間用下劃線隔開。public static String COMMON_URL_LIBRARY;一般要求:n 關(guān)鍵詞和操作符之間加適當(dāng)?shù)目崭?。ModelAndView mav = new ModelAndView(exception/exceptionmsg);n 相對(duì)獨(dú)立的程序塊與塊之間加空行。n 較長的語句(長度一般大于80)、表達(dá)式等要分成多行書寫。n 劃分出的新行要進(jìn)行適應(yīng)的縮進(jìn)
16、,使排版整齊,語句可讀。n 長表達(dá)式要在低優(yōu)先級(jí)操作符處劃分新行,操作符放在新行之首。n 循環(huán)、判斷等語句中若有較長的表達(dá)式或語句,則要進(jìn)行適當(dāng)?shù)膭澐?。if (obj.getClass().isPrimitive() | obj instanceof Double | obj instanceof Float | obj instanceof Long | obj instanceof Integer | obj instanceof Short | obj instanceof Byte | obj instanceof Boolean | obj instanceof BigDecimal
17、) return obj.toString();一般要求:n 若函數(shù)或過程中的參數(shù)較長,則要進(jìn)行適當(dāng)?shù)膭澐帧ublic Map getTransInfo(int humanID, int actID, String itemType,int newPartID) n 不允許把多個(gè)短語句寫在一行中,即一行只寫一條語句。n 函數(shù)或過程的開始、結(jié)構(gòu)的定義及循環(huán)、判斷等語句中的代碼都要采用縮進(jìn)風(fēng)格。特殊要求:n sql語句對(duì)齊一般對(duì)齊方式采用左對(duì)齊: select * + from * + where * + and * ; 或者 select * + from * + where * + and
18、* ;特殊要求:n 縮進(jìn)一般四個(gè)字符長度。使用tab鍵縮進(jìn)時(shí),注意將tab鍵長度設(shè)置為4Eclipse設(shè)置:設(shè)置:Window - Preferences - General - Editors - Text Editors 在右側(cè)找到Displayed tab widthn 類,函數(shù),以及判斷,循環(huán)之后的括號(hào)不要另起行。for(TransInfo trans : transInfo3)Tree tree = new Tree();tree.setId(trans.getNextPartID();tree.setText(trans.getNextPartName();if(treeMap3.
19、containsKey(trans.getNextActDefID() treeMap3.get(trans.getNextActDefID().getChildren().add(tree);n 類和方法注釋盡量簡潔,說明參數(shù)和功能即可。/* * 獲取單元網(wǎng)格內(nèi)監(jiān)督員* param cellID 單元網(wǎng)格標(biāo)識(shí) * return*/public List getCellPatrols(int cellID)n 需要對(duì)代碼比較復(fù)雜的邏輯進(jìn)行注釋/按專業(yè)部門派遣數(shù)量進(jìn)行排序transInfo2 = transformTransInfo(transInfo1,2);Struts的目標(biāo)是提供一個(gè)開發(fā)W
20、eb應(yīng)用的開源框架。Struts鼓勵(lì)基于M2模式(即MVC設(shè)計(jì)模式)來開發(fā)程序。- Model- View- Controllern 以JSP為中心的開發(fā)模型,稱為Model1(JSP+JAVABEAN)l 業(yè)務(wù)邏輯與表示邏輯混和,不利維護(hù)與重用l HTML中嵌入了大量的JAVA代碼l 驗(yàn)證、流程控制、更新程序的狀態(tài)全部在JSP中完成n 基于MVC模式的框架l MVC將問題進(jìn)行分解l 模型包含應(yīng)用程序的核心功能。模型封裝了應(yīng)用程序的狀態(tài)。它對(duì)視圖或控制器一無所知。 l 視圖提供模型的表示。它是應(yīng)用程序的 外觀。視圖可以訪問模型的讀方法,但不能訪問寫方法。此外,它對(duì)控制器一無所知。l 控制器對(duì)用
21、戶的輸入作出反應(yīng)。它創(chuàng)建并設(shè)置模型。 MVC模式示意圖Struts框架概覽n 瀏覽器l web容器將對(duì)來自HTTP的每個(gè)請(qǐng)求創(chuàng)建一個(gè)request對(duì)象,并用一個(gè)response對(duì)象作出響應(yīng)n 控制器l 控制器接收來自瀏覽器的請(qǐng)求,在struts中,是由一個(gè)servlet來充當(dāng)控制器的角色,struts-config.xml文件配置控制器n 模型l 在struts中,由Action類充當(dāng)業(yè)務(wù)邏輯的包裝器,ActionForm是程序的狀態(tài)n 視圖l JSP文件Struts1.X配置文件struts-config.xml示例ActionServlet類控制導(dǎo)航流ActionServlet根據(jù)URI來
22、決定哪個(gè)Action類被用于處理請(qǐng)求,Action可以校驗(yàn)輸入,并訪問業(yè)務(wù)層以便從數(shù)據(jù)庫檢索信息Action需要知道頁面提交了哪些內(nèi)容,所以由ActionServlet根據(jù)請(qǐng)求URI來決定將請(qǐng)求參數(shù)綁定到哪個(gè)ActionForm中,并傳入ActionAction在完成業(yè)務(wù)邏輯后,返回一個(gè)ActionForward對(duì)象,ActionServlet根據(jù)ActionForward對(duì)象中的路徑來調(diào)用頁面完成響應(yīng)Struts將這些信息綁定在一個(gè)ActionMapping對(duì)象中,一個(gè)ActionMapping對(duì)應(yīng)一個(gè)請(qǐng)求URI,當(dāng)請(qǐng)求路徑到達(dá)的時(shí)候,ActionServlet就會(huì)查詢ActionMappi
23、ng對(duì)象,ActionMapping對(duì)象將告訴ActionServlet哪個(gè)Action類會(huì)被調(diào)用、哪個(gè)ActionForm類被用于傳遞頁面數(shù)據(jù)以及哪些ActionForward將被用于轉(zhuǎn)向有關(guān)Action、ActionForm、ActionForward等信息,Struts通過一個(gè)配置文件:struts-config.xml文件來定義。Struts處理流程處理流程n直接使用JDBC操作數(shù)據(jù)庫的步驟很繁瑣nJDBC操作的是關(guān)系型數(shù)據(jù)庫n我們用JAVA開發(fā)程序,則使用面向?qū)ο蟮乃枷雗Hibernate正是在這兩種不同的模型之間建立關(guān)聯(lián),Hibernate給我們提供了利用面向?qū)ο蟮乃枷雭聿僮麝P(guān)系型
24、數(shù)據(jù)的接口n Hibernate能幫助我們利用面向?qū)ο竺嫦驅(qū)ο蟮乃枷?,開發(fā)基于關(guān)系型數(shù)據(jù)庫基于關(guān)系型數(shù)據(jù)庫的應(yīng)用程序l第一:將對(duì)象數(shù)據(jù)保存到數(shù)據(jù)庫l第二:將數(shù)據(jù)庫數(shù)據(jù)讀入對(duì)象中n Hibernate是以操作對(duì)象的方式,實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的操作,減少了數(shù)據(jù)庫操作的代碼。n 基于JDBC的一種封裝,執(zhí)行效率問題。Sample.javapublic class Sample public int compute(int i,int j)return i + j;ApplicationContext.xmlpublic class ClientTest /* * param args */public static void main(String args) /獲取BeanFactoryBe
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版毛石擋土墻施工安全防護(hù)設(shè)施采購合同4篇
- 二零二五年度出國勞務(wù)人員福利待遇協(xié)議4篇
- 二零二五年度太陽能路燈照明工程設(shè)計(jì)與設(shè)備供應(yīng)合同3篇
- 2025版教育行業(yè)學(xué)徒制實(shí)習(xí)協(xié)議范本3篇
- 2025年機(jī)場車庫租賃與行李托運(yùn)服務(wù)協(xié)議4篇
- 二零二五年度女方離婚上訴狀法律援助合同
- 2025年度文化產(chǎn)業(yè)投資基金入股協(xié)議
- 2025年度沿海漁船租賃及捕撈作業(yè)合同范本4篇
- 2025年度農(nóng)副產(chǎn)品電商平臺(tái)數(shù)據(jù)共享與安全協(xié)議
- 2025版協(xié)議離婚糾紛解決與財(cái)產(chǎn)保全合同3篇
- 電化學(xué)儲(chǔ)能電站安全規(guī)程
- 幼兒園學(xué)習(xí)使用人民幣教案教案
- 2023年浙江省紹興市中考科學(xué)真題(解析版)
- 語言學(xué)概論全套教學(xué)課件
- 大數(shù)據(jù)與人工智能概論
- 《史記》上冊(cè)注音版
- 2018年湖北省武漢市中考數(shù)學(xué)試卷含解析
- 測繪工程產(chǎn)品價(jià)格表匯編
- 《腎臟的結(jié)構(gòu)和功能》課件
- 裝飾圖案設(shè)計(jì)-裝飾圖案的形式課件
- 護(hù)理學(xué)基礎(chǔ)教案導(dǎo)尿術(shù)catheterization
評(píng)論
0/150
提交評(píng)論