《電子商務的應用開發技術》-第3章_第1頁
《電子商務的應用開發技術》-第3章_第2頁
《電子商務的應用開發技術》-第3章_第3頁
《電子商務的應用開發技術》-第3章_第4頁
《電子商務的應用開發技術》-第3章_第5頁
已閱讀5頁,還剩67頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、對外經濟貿易大學信息學院對外經濟貿易大學信息學院l第一節第一節.Java.Java概述概述l第二節第二節.Java.Java語言基礎語言基礎l第三節第三節. .面向對象編程面向對象編程lJava語言起源語言起源 Java是是SUN公司發明的一種計算機程序設計語公司發明的一種計算機程序設計語言,現今已經得到廣泛應用。言,現今已經得到廣泛應用。Java的名稱來源的名稱來源于太平洋上的一個名為于太平洋上的一個名為Java的小島,該島盛產的小島,該島盛產的咖啡為的咖啡為Java的發明者喜愛,于是他們將該語的發明者喜愛,于是他們將該語言命名為言命名為Java。Java的目標是成為一種簡單、的目標是成為一

2、種簡單、有效、易用的跨計算機平臺(硬件、操作系統有效、易用的跨計算機平臺(硬件、操作系統等)的通用程序設計語言。等)的通用程序設計語言。 1995年年Sun公司正公司正式推出了式推出了Java語言,現在,語言,現在,Java語言及其擴展語言及其擴展技術已經成為互聯網應用開發和企業應用開發技術已經成為互聯網應用開發和企業應用開發等的最重要的技術之一。等的最重要的技術之一。 lJava語言特點語言特點 Java是一種簡單、面象對象、分布式、是一種簡單、面象對象、分布式、解釋執行、健壯、安全、結構中立、可解釋執行、健壯、安全、結構中立、可移植的多線程的動態的程序設計語言。移植的多線程的動態的程序設計

3、語言。 lJava程序類型程序類型 根據計算結構的不同,根據計算結構的不同,Java程序最初劃分為程序最初劃分為Application(普通應用程序)和(普通應用程序)和Applet(Java小程序)小程序)兩大類。這兩類程序的開發原理基本相同,但是運行兩大類。這兩類程序的開發原理基本相同,但是運行環境有所不同。環境有所不同。 Java Application是獨立完整的程序,是獨立完整的程序,定義有定義有main方法,在命令行調用獨立的解釋器即可運方法,在命令行調用獨立的解釋器即可運行。行。Java Applet主要嵌入到網頁里面,由主要嵌入到網頁里面,由WWW瀏覽瀏覽器里面的解釋器解釋執行

4、。隨著器里面的解釋器解釋執行。隨著Java技術的發展,更技術的發展,更多的多的Java程序類型出現,如程序類型出現,如Servlet,Java Bean和和EJB(Enterprise JavaBean)等。)等。Servlet是使用是使用Java技術技術開發開發Web應用的基礎,它運行在一個應用的基礎,它運行在一個Web服務器端的服務器端的Servlet容器內,支持創建動態的容器內,支持創建動態的Web頁面,極大的增頁面,極大的增強了強了Web應用的開發能力;應用的開發能力;JavaBean是描述是描述Java的軟的軟件組件模型,通過件組件模型,通過JavaBean可以實現代碼的重復利用,可

5、以實現代碼的重復利用,并可很好的擴充并可很好的擴充Java程序的功能;程序的功能;EJB是在稱作是在稱作 EJB 容器的特殊環境中運行的軟件組件。容器容納和管理容器的特殊環境中運行的軟件組件。容器容納和管理 Enterprise Bean 的方式與的方式與 Java Web 服務器容納服務器容納 Servlet 或瀏覽器容納或瀏覽器容納 Java Applet 的方式相同。的方式相同。Enterprise Bean 不能在不能在 EJB 容器外部運行。容器外部運行。 lJava 虛擬機虛擬機 Java程序由程序由Java解釋器負責解釋、運行,解釋器負責解釋、運行,Java解釋器是解釋器是Jav

6、a虛擬機虛擬機(見下圖見下圖)的一部分,不同的一部分,不同操作系統和平臺上運行的操作系統和平臺上運行的Java虛擬機可將不同虛擬機可將不同平臺間的差異性隱藏起來。下圖給出了平臺間的差異性隱藏起來。下圖給出了Java程程序從源代碼到執行的全過程。序從源代碼到執行的全過程。 lJDK JDK (Java Development Kit )是是Java開發的工開發的工具包,它是構建在具包,它是構建在Java平臺上的應用程序、平臺上的應用程序、Applet 和組件的開發環境。和組件的開發環境。 JDK是一切是一切java應應用程序的基礎,所有的用程序的基礎,所有的java應用程序是構建在應用程序是構建

7、在它之上,它之上,Java程序員可以使用程序員可以使用JDK里提供的類里提供的類去開發應用程序,去開發應用程序,JDK提供了編譯工具提供了編譯工具(javac.exe)和解釋器()和解釋器(java.exe)供開發者)供開發者編譯和解釋執行編譯和解釋執行Java程序。程序。JDK有不同的版本,有不同的版本,截至目前(截至目前(2005年年7月)已發布到月)已發布到1.5版本。下版本。下面將介紹面將介紹JDK的安裝和使用,介紹中使用版本的安裝和使用,介紹中使用版本JDK1.2.3,不同,不同JDK的安裝和使用基本是一樣的安裝和使用基本是一樣的。的。 lJDK的安裝與環境設置的安裝與環境設置 JD

8、K的安裝與環境設置步驟如下:的安裝與環境設置步驟如下:l1.從網絡(從網絡()下載適合自己操作系統的)下載適合自己操作系統的JDK軟件版本。軟件版本。l2.下載結束后將在本地計算機得到一個名為下載結束后將在本地計算機得到一個名為jdk123-win32.exe的的開發工具安裝文件,在計算機的開發工具安裝文件,在計算機的c盤建立一個名為盤建立一個名為JDK的目錄,的目錄,將將jdk123-win32.exe保存在該目錄下。保存在該目錄下。l3.下載下載JDK的幫助文檔的幫助文檔jdk123-doc.zip文件,在文件,在c盤的盤的JDK目錄目錄下建立子目錄下建立子目錄Document把把jdk1

9、23-doc.zip文件保存在這個子目文件保存在這個子目錄下。錄下。l4.運行運行jdk123-win32.exe文件,安裝在指定的目錄下,例如,安文件,安裝在指定的目錄下,例如,安裝在裝在C:JDK目錄下。目錄下。l5.設置環境變量設置環境變量PATH。修改計算機的。修改計算機的C:AUTOEXEC.BAT文文件件(假定操作系統在假定操作系統在C盤安裝盤安裝),在其中增加一句,在其中增加一句set path=%path%;c:jdkbin,如果沒有該文件,自己手工創建。,如果沒有該文件,自己手工創建。l6.設置環境變量設置環境變量CLASSPATH。修改計算機的。修改計算機的C:AUTOEX

10、EC.BAT文件,在其中再增加一句文件,在其中再增加一句set classpath=.; c:jdklib;%classpath%。然后在。然后在c:下手工執行下手工執行AUTOEXEC.BAT使得環境變量使得環境變量path和和classpath生效。生效。l7.使用解壓縮工具使用解壓縮工具Winzip解壓解壓JDK幫助文件幫助文件jdk123-doc.zip,將,將獲得一組以獲得一組以HTML文件形式組成的幫助文件,把它們保存在本文件形式組成的幫助文件,把它們保存在本地的一個目錄下,例如,保存在地的一個目錄下,例如,保存在C:JDKDocument目錄下。目錄下。 l第一個第一個Java

11、Application程序程序 l編寫并編譯第一個編寫并編譯第一個Java Application程序步驟如下:程序步驟如下:l打開一個純文本編輯器,如打開一個純文本編輯器,如notePadl鍵入如下程序:鍵入如下程序:l public class FirstJavaProgramll public static void main(String args)l l System.out.println(This is my first java program!);l ll檢查無誤后檢查無誤后(注意大小寫準確注意大小寫準確)把文件保存起來,命名為把文件保存起來,命名為FirstJavaProg

12、ram.java,可以創建如下的目錄保存這個文件:,可以創建如下的目錄保存這個文件:C:lx。l進入命令方式(進入命令方式(MS-DOS),在保存由上述),在保存由上述FirstJavaProgram.java文文件的目錄下運行件的目錄下運行Java編譯器:編譯器:l C:lxjavac FirstJavaProgram.javal如果如果JDK安裝正確、程序輸入無誤且保存的文件名正確,運行編譯安裝正確、程序輸入無誤且保存的文件名正確,運行編譯器沒有任何輸出,否則會輸出錯誤信息,一般的錯誤都是由于拼寫失器沒有任何輸出,否則會輸出錯誤信息,一般的錯誤都是由于拼寫失誤引起的。再運行誤引起的。再運行

13、dir命令查看是否已在相同目錄下生成一個名為命令查看是否已在相同目錄下生成一個名為FirstJavaProgram.class的文件。的文件。l利用利用Java解釋器運行這個解釋器運行這個Java Application程序,并查看運行結果:程序,并查看運行結果:lC:lxjava FirstJavaPrograml程序運行結果:程序運行結果:lThis is my first java program! l第一個第一個Java Applet程序程序 l編寫并編譯第一個編寫并編譯第一個Java Applet程序步驟如下:程序步驟如下:l打開一個純文本編輯器。打開一個純文本編輯器。l鍵入如下程序

14、:鍵入如下程序:limport java.applet.Applet;limport java.awt.Graphics;lpublic class FirstJavaApplet extends Appletllpublic void paint(Graphics g)llg.drawString(This is my first java Applet!,15,20);lll檢查無誤后把文件保存起來,命名為檢查無誤后把文件保存起來,命名為FirstJavaApplet.java,可,可以創建如下的目錄保存這個文件:以創建如下的目錄保存這個文件:C:lxl進入命令方式(進入命令方式(MS-D

15、OS),在保存由上述),在保存由上述FirstJavaApplet.java文件的目錄下運行文件的目錄下運行Java編譯器:編譯器:lC:lxjavac FirstJavaApplet.javal編寫配合編寫配合Applet的的HTML文件,打開一個純文文件,打開一個純文本編輯器,鍵入如下的本編輯器,鍵入如下的HTML代碼:代碼:l llllll檢查無誤后把文件名為檢查無誤后把文件名為FirstJavaApplet.html,與文件,與文件FirstJavaAppletJava保存在同一個目錄下。保存在同一個目錄下。直接雙擊這個直接雙擊這個HTML文件的圖標,查看文件的圖標,查看Applet在

16、瀏覽器中的運行結果。在瀏覽器中的運行結果。 l第一節第一節.Java.Java概述概述l第二節第二節.Java.Java語言基礎語言基礎l第三節第三節. .面向對象編程面向對象編程l標識符、變量與常量標識符、變量與常量 標識符是賦予變量、常量、方法、對象或類的名稱,標志其存在。標識符是賦予變量、常量、方法、對象或類的名稱,標志其存在。一個一個java的標識符可以由大小寫字母、數字、下劃線和美元符號的標識符可以由大小寫字母、數字、下劃線和美元符號組合而成,但必須以字母、下劃線或美元符號開頭。不符合這一組合而成,但必須以字母、下劃線或美元符號開頭。不符合這一規則的組合就是非法標識符。規則的組合就是

17、非法標識符。 下面是一些合法的標識符:下面是一些合法的標識符: MyClass$Nameline3_1 circle$pot_8 下面是一些合法的標識符:下面是一些合法的標識符: 5club Hot-street tele123 Red/Bad students 在在java語言中是大小寫敏感的,例如語言中是大小寫敏感的,例如class和和Class,aVar和和avar代代表不同的標識符。表不同的標識符。 l數據類型數據類型 在在java有一些特殊的類型,可以稱為基有一些特殊的類型,可以稱為基本數據類型。對于這些類型,本數據類型。對于這些類型,java采納采納了與了與C語言類似的方法,可以直

18、接創建非語言類似的方法,可以直接創建非句柄的變量,變量中直接存儲它的值。句柄的變量,變量中直接存儲它的值。 java語言中定義了語言中定義了8種基本數據類型:字種基本數據類型:字節型(節型(byte)、短整型()、短整型(short)、整形)、整形(int)、長整型()、長整型(long)、字符性)、字符性(char)和浮點型()和浮點型(float)。其長度、)。其長度、缺省值和取值范圍如下表所示。一切數缺省值和取值范圍如下表所示。一切數據都是對象。據都是對象。 l運算符運算符 java語言定義了豐富的操作運算,包括賦值運算、算術運算、關語言定義了豐富的操作運算,包括賦值運算、算術運算、關系

19、運算和邏輯運算。系運算和邏輯運算。 1.賦值賦值 l賦值是用等號(賦值是用等號(=)運算符進行的。它的含義是)運算符進行的。它的含義是“取得右邊的值,取得右邊的值,把它復制到左邊把它復制到左邊”。右邊的值可以是任何常量、變量或表達式。右邊的值可以是任何常量、變量或表達式。左邊必須是一個明確命名的變量。左邊必須是一個明確命名的變量。l在進行賦值運算時,運算符等號(在進行賦值運算時,運算符等號(=)左邊的變量類型和右邊值)左邊的變量類型和右邊值的類型相同時可以賦值,這種情況稱為類型相容;參運算符等號的類型相同時可以賦值,這種情況稱為類型相容;參運算符等號(=)兩邊不相同,如果左邊變量類型比表達式類

20、型長時,系統)兩邊不相同,如果左邊變量類型比表達式類型長時,系統會自動將表達式轉化為較長的類型,這時也可以賦值,這種情況會自動將表達式轉化為較長的類型,這時也可以賦值,這種情況可以稱為賦值相容。可以稱為賦值相容。l例如,例如,llong a=10L; /類型相同類型相同llong b=8 /8是是int,自動轉化為自動轉化為long,賦值相容,賦值相容l當賦值不相容時,需要使用強制類型轉換,格式如下:當賦值不相容時,需要使用強制類型轉換,格式如下:l(目標類型)表達式(目標類型)表達式l例如,例如,la=(int)10L /數值的轉換數值的轉換 2.算術運算 算術運算是針對數值類型操作數進行的

21、運算,算術運算符分為一元運算符和二元運算符。一元運算符只有一個操作數,而二元運算符有兩個操作數參加運算。l一元運算符:一元正(+),一元負(-),加1(+)和減1(-)。l例如,lint a=8,b,c;lb=+a; /取原值,則b=8lc=-a; /取相反符號值,則c=-8lc=a+; /先c=a,再a=a+1,則c=8,a=9ld=+b; /先b=b+1,再d=b,則d=9,b=9l二元運算符:加(+),減(-),乘(*),除(/)和取余(%)。l只有整數類型的數據才能夠進行取余運算,兩個整數類型的數據做除法時,結果是截取商數的整數部分。例如,l7/2=3 /整除l7%2=1 /余數為整數

22、 3. 關系運算關系運算 關系運算符用于比較兩個值之間的大小,關系運算符用于比較兩個值之間的大小,結果返回布爾值。它們評價的運算對象結果返回布爾值。它們評價的運算對象值之間的關系。若關系是真實的,關系值之間的關系。若關系是真實的,關系表達式會生成表達式會生成true的結果;反之,生成的結果;反之,生成false的結果。的結果。 關系運算符有關系運算符有6種:等于(種:等于(= =),不等),不等于(!于(!=),大于(),大于()大于等于()大于等于(=),),小于(小于()和小于等于()和小于等于(),左移(),左移()。)。l三元三元if-else運算符格式如下:運算符格式如下: ?: 該

23、運算符的作用是:先計算該運算符的作用是:先計算的值,當的值,當的值為的值為true時,則將時,則將的值作為整個表達的值作為整個表達式的值;當式的值;當的值為的值為false時,則將時,則將的值作為整個表達式的值。的值作為整個表達式的值。l字符運算符字符運算符“+”用于字符串合并運算。當用于字符串合并運算。當“+”合并一合并一個字符串與一個操作數時,自動將操作數轉化為字符個字符串與一個操作數時,自動將操作數轉化為字符串。例如,串。例如,System.out.println(“a=”+a); l流程控制語句流程控制語句 java的流程控制語句包括選擇控制語句、循環控制語句和跳轉控制語句。的流程控制

24、語句包括選擇控制語句、循環控制語句和跳轉控制語句。 1.選擇控制語句選擇控制語句 java語言中提供了兩種選擇控制語句語言中提供了兩種選擇控制語句if-else語句和語句和switch語句。語句。 if-else語句的一般形式是:語句的一般形式是: If () ; else ; 條件表達式必須產生一個布爾結果。條件表達式的取值為真,則執行條件表達式必須產生一個布爾結果。條件表達式的取值為真,則執行,否則執行,否則執行。其中。其中else是可選的,可以自嵌套。是可選的,可以自嵌套。 switch語句是多分支的開關語句,形式為:語句是多分支的開關語句,形式為: switch() case:; br

25、eak; case:; break; default:; 2.循環控制語句循環控制語句 ljava語言中提供了三種循環控制語句語言中提供了三種循環控制語句for語句、語句、while語句和語句和do-while語句。語句。lfor語句的格式語句的格式lfor (;)l;l其中其中給循環變量初始化;給循環變量初始化;給循環結束條件,給循環結束條件,結果為布爾值;結果為布爾值;表示循環變量的增量或減量;表示循環變量的增量或減量;是循環體,可以是一條語句,也可以是是循環體,可以是一條語句,也可以是括起來的多條語句。括起來的多條語句。lwhile語句的格式語句的格式lwhile()l;l的結果是布爾值

26、,表示循環執行的條件,當值為的結果是布爾值,表示循環執行的條件,當值為true時,執行循環體時,執行循環體;當值為;當值為false時時,循環結束,執行下循環結束,執行下一條語句。在循環剛開始時,會計算一次一條語句。在循環剛開始時,會計算一次的值,的值,對于后來的每一次循環,都會對其重新計算。對于后來的每一次循環,都會對其重新計算。ldo-while語句格式語句格式ldoll ;l while(); 3.跳轉控制語句跳轉控制語句 ljava語言中提供了三種跳轉控制語句語言中提供了三種跳轉控制語句continue語句、語句、break語句和語句和return語句。使用這些語句可以從正在執行的程序

27、段轉移到其他部分語句。使用這些語句可以從正在執行的程序段轉移到其他部分執行。執行。lcontinue語句語句lcontinue語句必須用于循環結構中,它有兩種使用形式。語句必須用于循環結構中,它有兩種使用形式。l一種是不帶標號的一種是不帶標號的continue語句,它的作用是終止當前這一輪的循環,語句,它的作用是終止當前這一輪的循環,跳過本輪剩余的語句,直接進入當前循環的下一輪。跳過本輪剩余的語句,直接進入當前循環的下一輪。l另一種是帶標號的另一種是帶標號的Continue語句,其格式是:語句,其格式是:lcontinue ;l其中這個標號名應該定義在中外層循環語句的前面,用來標志這個循其中這

28、個標號名應該定義在中外層循環語句的前面,用來標志這個循環結構。環結構。lbreak 語句語句lbreak 語句的用途是從一個封閉語句中跳出,并將控制權交給循環語語句的用途是從一個封閉語句中跳出,并將控制權交給循環語句或分支語句后面的語句。其格式如下:句或分支語句后面的語句。其格式如下:lbreak ;l其中其中用于指定一個封閉語句的標號。一般情況不用標號。用于指定一個封閉語句的標號。一般情況不用標號。lreturn 語句語句lreturn 語句用來使程序從方法中返回,并為方法返回一個值。語句用來使程序從方法中返回,并為方法返回一個值。return 語句的格式如下:語句的格式如下:lreturn

29、 返回值;返回值; l數組數組 在在Java語言里,數組和語言里,數組和C及及C+的數組有區別,的數組有區別,Java的數組是一的數組是一種特殊的對象,使用前必須象其它對象一樣先創建,然后再使用種特殊的對象,使用前必須象其它對象一樣先創建,然后再使用(詳見類的使用章節)。下面分別給出一維數組的使用方法,一(詳見類的使用章節)。下面分別給出一維數組的使用方法,一維數組里面的元素可以是簡單類型或者對象類型,元素類型不同,維數組里面的元素可以是簡單類型或者對象類型,元素類型不同,使用方法也不同。使用方法也不同。 1.一維數組的語法一維數組的語法 聲明一維數組的語法為:聲明一維數組的語法為: 或者或者

30、 下面兩個語句都聲明了一個整型數組,數組的每一個元素都是下面兩個語句都聲明了一個整型數組,數組的每一個元素都是int類類型的。型的。 int a ; int a; 下面兩個語句聲明了一個對象數組,數組的每一個元素都是下面兩個語句聲明了一個對象數組,數組的每一個元素都是Student類型的(假設類型的(假設Student是一個類)。是一個類)。 Student stu ; Student stu; 2.創建數組對象創建數組對象 在在Java中,數組在聲明的時候不象中,數組在聲明的時候不象C和和C+一樣要指定一樣要指定元素個數,并且聲明后也不能直接使用。必須使用元素個數,并且聲明后也不能直接使用。

31、必須使用new操作符創建數組對象(為數組分配空間),在創操作符創建數組對象(為數組分配空間),在創建的時候指定元素個數。語法如下:建的時候指定元素個數。語法如下: =new 例如針對前面的聲明例如針對前面的聲明,可以以如下語句分別創建數組可以以如下語句分別創建數組a和和stu。a=new int 5 ; stu=new Student20; 當然也可以在聲明的同時創建數組對象,如下:當然也可以在聲明的同時創建數組對象,如下: int a =new int 5; Student stu=new Student20; 3.屬性屬性length 數組作為一個對象,有一個屬性數組作為一個對象,有一個屬

32、性length,代表數組的長,代表數組的長度,訪問該屬性的語法如下:度,訪問該屬性的語法如下: Length 比如如下語句執行后,比如如下語句執行后,l的值就為的值就為5,因為創建數組時,因為創建數組時指定的元素個數為指定的元素個數為5,即數組產毒為,即數組產毒為5。int a =new int 5;int l=a. length; 對于對于Java基本類型的數組和對象類型的數組使用上不基本類型的數組和對象類型的數組使用上不一樣,這是因為任何一個對象必須先創建后使用,而一樣,這是因為任何一個對象必須先創建后使用,而基本類型定義后可以直接使用。分析一下上面的聲明,基本類型定義后可以直接使用。分析

33、一下上面的聲明,a和和stu都是對象(數組對象),都是對象(數組對象),a0,a1 ,a2,a3,a4是整數(簡單類型),而是整數(簡單類型),而stu0,stu1,一直到,一直到stu19不是簡單類型,它們是不是簡單類型,它們是Student類型,類型,stu0到到stu19仍然不能直接使用,需要繼續創建對象才能使仍然不能直接使用,需要繼續創建對象才能使用。用。 4.實例實例 l下面給出一個簡單類型的數組使用例子。下面給出一個簡單類型的數組使用例子。ltestArray.java代碼如下代碼如下lpublic class testArrayll public static void main

34、(String args) l l int a = new int 4; /創建數組對象創建數組對象 al int i;l for (i=0;i4;i+) /給給a的每個元素賦值的每個元素賦值l ai = i; l for (i=0;i4;i+) /打印每個元素打印每個元素l System.out.print(ai+ ); l ll程序運行結果如下:程序運行結果如下:l0 1 2 3 l如下是另外一個對象類型的數組例子,為了演示數組,定義了一個類如下是另外一個對象類型的數組例子,為了演示數組,定義了一個類Student,里面只指定了,里面只指定了一個屬性一個屬性name和構造函數,其他屬性和方

35、法都省略和構造函數,其他屬性和方法都省略,特別注意黑體部分,這是和基本類型的特別注意黑體部分,這是和基本類型的數組不一樣的地方。數組不一樣的地方。ltestObjectArray.java代碼如下:代碼如下:lclass Studentll String name;l Student (String nm)l l name=nm;l llpublic class testObjectArrayll public static void main(String args) l l Student stu = new Student3; /聲明并創建數組對象聲明并創建數組對象stu,3個元素個元素

36、l int i;l for (i=0;istu.length;i+) /創建創建stu0, stu1, stu2l stui=new Student(name +i); l for (i=0;i stu.length;i+) /打印每個元素打印每個元素l System.out.println(); l ll程序運行結果如下:程序運行結果如下:lname0lname1lname25.數組賦初值數組賦初值 可以在聲明數組的同時,為數組賦初值。可以在聲明數組的同時,為數組賦初值。例如:例如: int a =1,2,3,4; 數組數組a的的4個元素依次是個元素依次是a0,a1 ,a2

37、 ,a3 l第一節第一節.Java.Java概述概述l第二節第二節.Java.Java語言基礎語言基礎l第三節第三節. .面向對象編程面向對象編程l面向對象方法基礎面向對象方法基礎 1.面向對象的方法概述面向對象的方法概述 面向對象的方法是當前軟件開發的主流方法。開發一面向對象的方法是當前軟件開發的主流方法。開發一個軟件是為了解決某個領域的問題,面向對象的方法個軟件是為了解決某個領域的問題,面向對象的方法強調直接以問題域中的事物為中心來思考和認識問題,強調直接以問題域中的事物為中心來思考和認識問題,強調運用人們日常的邏輯思維中經常運用的思維方法強調運用人們日常的邏輯思維中經常運用的思維方法與原

38、則(如抽象、分類、繼承、聚合、封裝)來有效與原則(如抽象、分類、繼承、聚合、封裝)來有效地思考問題,強調軟件應該保持問題領域的本來面貌,地思考問題,強調軟件應該保持問題領域的本來面貌,并以人們能夠看的懂的方式表達出來。因為日常生活并以人們能夠看的懂的方式表達出來。因為日常生活中的概念和對象都是人們所熟悉的,這大大降低了人中的概念和對象都是人們所熟悉的,這大大降低了人們認識問題的難度,同時降低了開發軟件的難度。們認識問題的難度,同時降低了開發軟件的難度。 2.面向對象開發的階段面向對象開發的階段 采用面向對象的方法的開發過程大致可以分為三個階采用面向對象的方法的開發過程大致可以分為三個階段:段:

39、 1)面向對象的分析()面向對象的分析(OOA)l面向對象的分析的主要作用是明確用戶的需求,面向對象的分析的主要作用是明確用戶的需求,并用面向對象的模型并用面向對象的模型(OOA模型模型)表述這一需求。表述這一需求。 2)面向對象的設計()面向對象的設計(OOD)l面向對象的設計階段主要關注系統如何完成客戶面向對象的設計階段主要關注系統如何完成客戶的需求,的需求,OOD階段將對階段將對OOA模型進行細化分析和設模型進行細化分析和設計,對系統的靜態和動態模型進行設計,設計的結計,對系統的靜態和動態模型進行設計,設計的結果是系統物理模型,模型中的設計元素能從最終的果是系統物理模型,模型中的設計元素

40、能從最終的程序中找到對應體。程序中找到對應體。 3)面向對象的實現()面向對象的實現(OOP)l面向對象的實現就是使用面向對象的編程語言面向對象的實現就是使用面向對象的編程語言(如(如Java)編碼以實現整個軟件系統。在)編碼以實現整個軟件系統。在OOD模型模型中定義了很多對象和類,它們的靜態特性和動態特中定義了很多對象和類,它們的靜態特性和動態特征都最終使用特定的程序設計語言給出實現。征都最終使用特定的程序設計語言給出實現。 3.面向對象的四個基本特征面向對象的四個基本特征 面向對象的編程方法具有如下四個基本特征,面向對象的編程方法具有如下四個基本特征,要掌握面向對象的程序設計,理解這四個特

41、要掌握面向對象的程序設計,理解這四個特征是非常重要的。征是非常重要的。 1)抽象)抽象 抽象就是忽略掉問題域中非本質的方面,而抽象就是忽略掉問題域中非本質的方面,而抓住所解決問題的主要特征,以便更充分地抓住所解決問題的主要特征,以便更充分地注意與當前目標有關的方面。比如,我們要注意與當前目標有關的方面。比如,我們要設計一個學生成績管理系統,考察學生這個設計一個學生成績管理系統,考察學生這個對象時,我們只關心他的學號、課程和成績對象時,我們只關心他的學號、課程和成績等和解決問題有關的信息,而不用去關心他等和解決問題有關的信息,而不用去關心他的身高、體重這些無關的信息。抽象的基本的身高、體重這些無

42、關的信息。抽象的基本用途是從對象的實現中分離出一個對象對外用途是從對象的實現中分離出一個對象對外部的某個操作請求的反應。部的某個操作請求的反應。 2)封裝)封裝 封裝是面向對象的特征之一。封裝是把過程封裝是面向對象的特征之一。封裝是把過程和數據包圍起來,對數據的訪問只能通過已和數據包圍起來,對數據的訪問只能通過已定義的對外接口方法。封裝保證了模塊具有定義的對外接口方法。封裝保證了模塊具有較好的獨立性,使得程序維護修改較為容易。較好的獨立性,使得程序維護修改較為容易。對應用程序的修改僅限于類的內部,因而可對應用程序的修改僅限于類的內部,因而可以將應用程序修改帶來的影響減少到最低限以將應用程序修改

43、帶來的影響減少到最低限度。封裝主要依靠對類、數據和方法的訪問度。封裝主要依靠對類、數據和方法的訪問控制,比如在控制,比如在Java語言中,可以在定義屬性語言中,可以在定義屬性和方法時加上和方法時加上private、protected和和public等等關鍵詞來定義屬性和方法的對外的可見性。關鍵詞來定義屬性和方法的對外的可見性。 3)繼承)繼承 繼承是一種表示類的關系一種的模型,繼承是一種表示類的關系一種的模型,它允許類的重用。一個新類可以從現有它允許類的重用。一個新類可以從現有的類中派生,這個過程稱為類繼承。新的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性(方法和變量),類繼承了原始類

44、的特性(方法和變量),新類被稱為原始類的派生類(子類),新類被稱為原始類的派生類(子類),而原始類被稱為新類的基類(父類)。而原始類被稱為新類的基類(父類)。在繼承已有功能的基礎上,新類也可以在繼承已有功能的基礎上,新類也可以修改或增加新的方法使之更適合特殊的修改或增加新的方法使之更適合特殊的需要。需要。 4)多態性)多態性 多態指的是一個程序中同名的不同方法多態指的是一個程序中同名的不同方法共存的情況,面向對象的程序中多態可共存的情況,面向對象的程序中多態可以通過子類對父類方法的覆蓋來實現,以通過子類對父類方法的覆蓋來實現,方法的含義由調用的場景來決定。方法的含義由調用的場景來決定。 lJa

45、va自定義類自定義類 抽象和封裝主要體現在類的定義和使用抽象和封裝主要體現在類的定義和使用上,類的定義和使用是面向對象程序設上,類的定義和使用是面向對象程序設計的主要工作之一。類是一種復雜的數計的主要工作之一。類是一種復雜的數據類型,它將對象的屬性對屬性的相關據類型,它將對象的屬性對屬性的相關的操作封裝在一起。在類中用變量表示的操作封裝在一起。在類中用變量表示對象的屬性,用方法(函數)表示對象對象的屬性,用方法(函數)表示對象的行為。下面給出的行為。下面給出Java如何定義和使用如何定義和使用類。類。 1.類的定義類的定義 類的定義格式分為兩部分,類聲明和類主體。類的定義格式分為兩部分,類聲明

46、和類主體。聲明語法如下:聲明語法如下: 1)類的聲明)類的聲明 其中,類聲明語法如下:其中,類聲明語法如下: class extends implements 2)類主體)類主體 聲明語法如下:聲明語法如下: 聲明變量聲明變量 聲明語法如下:聲明語法如下: static final transient ; static:靜態成員變量:靜態成員變量 final:常量:常量 transient:臨時變量:臨時變量 聲明方法聲明方法 聲明語法如下:聲明語法如下: (參數列表參數列表)throws 如果沒有返回值,用如果沒有返回值,用void標記。例如,標記。例如, public class Stud

47、ent /類聲明類聲明 private int studentID; /成員變量成員變量1 private String studentName; /成員變量成員變量2 public void setStudentName (String name) /無返回值,有參數無返回值,有參數 studentName=name; 注意,方法前如果有注意,方法前如果有static關鍵字,表示該方法是靜態方法(也叫關鍵字,表示該方法是靜態方法(也叫類方法),靜態方法可以通過類名直接訪問。類方法),靜態方法可以通過類名直接訪問。 2.構造函數構造函數 構造函數又叫構造器,它是類的特殊方構造函數又叫構造器,它

48、是類的特殊方法。構造方法名和類名同名,沒有返回法。構造方法名和類名同名,沒有返回值(不用寫值(不用寫void),它的主要作用是用),它的主要作用是用來創建對象并初始化對象成員變量的值。來創建對象并初始化對象成員變量的值。構造函數可以有參數也可以沒有參數。構造函數可以有參數也可以沒有參數。每個類至少有一個構造函數,一個類也每個類至少有一個構造函數,一個類也可以有多個構造函數。如果在類的聲明可以有多個構造函數。如果在類的聲明中沒有定義任何構造函數,編譯器會自中沒有定義任何構造函數,編譯器會自動生成一個無參構造函數,這個構造函動生成一個無參構造函數,這個構造函數可以被調用以創建對象,只是它沒有數可以

49、被調用以創建對象,只是它沒有對對象的變量進行初始化等工作。對對象的變量進行初始化等工作。 下面給出一個例子,該例定義了一個圓類,類中有下面給出一個例子,該例定義了一個圓類,類中有2個構造函數,個構造函數,一個具有一個具有1個參數的構造函數用于指定圓的半徑,另一個是無參個參數的構造函數用于指定圓的半徑,另一個是無參構造函數,無參構造函數缺省指定圓的半徑為構造函數,無參構造函數缺省指定圓的半徑為10。 lclass Circle l double radius; /半徑半徑l public Circle (double r) /有參構造函數有參構造函數l radius=r;ll public Ci

50、rcle () /無參構造函數無參構造函數l radius=10;l l double calcCircumference () /求周長方法求周長方法l return 2.0 * 3.14 * radius;l l double calcArea() /求面積方法求面積方法l return 3.14*radius*radius;l l 3.類的使用類的使用 在定義好類之后,可以調用類的構造函數去創建對象,并調用在定義好類之后,可以調用類的構造函數去創建對象,并調用對象的其它方法來完成特定的功能。下面給出對象創建和使用對象的其它方法來完成特定的功能。下面給出對象創建和使用方法。方法。1)對象的

51、聲明和創建)對象的聲明和創建 l聲明語法如下:聲明語法如下:l l例如下面語句聲明了一個例如下面語句聲明了一個c1對象(實際是引用)。對象(實際是引用)。lCircle c1;l對象的創建是通過調用構造函數創建的,通過對象的創建是通過調用構造函數創建的,通過new操作符來調操作符來調用構造函數。語法如下:用構造函數。語法如下:l=new (參數列表參數列表)l例如,下面語句創建了一個半徑為例如,下面語句創建了一個半徑為20的圓的對象。的圓的對象。lc1=new Circle(20););l還可以在聲明對象的同時使用還可以在聲明對象的同時使用new運算符創建對象。格式如下:運算符創建對象。格式如

52、下:l =new (參數列表參數列表)l例如:例如:Circle c1=new Circle(20);); 2)引用成員變量)引用成員變量l引用成員變量語法如下:引用成員變量語法如下:l.lCircle c1=new Circle(20););ldouble d1=c1.radius; l其中其中c1為對象名,為對象名,c1.radius訪問訪問c1對象的變量對象的變量radius,將結果,將結果放到變量放到變量d1里面。里面。 3)調用成員函數)調用成員函數 l調用成員函數語法如下:調用成員函數語法如下:l.l例如,例如,lCircle c1=new Circle(20););ldouble

53、 area1=c1. calcArea( );l其中其中c1為對象名,為對象名,c1.calcArea( )通過通過c1對象調用計算面積的對象調用計算面積的方法,將方法,將c1的面積放到變量的面積放到變量area1里面。里面。 l特殊的方法靜態方法,除了可以使用如上方法訪問外,也可以特殊的方法靜態方法,除了可以使用如上方法訪問外,也可以通過類名來訪問,語法為通過類名來訪問,語法為.。如類。如類Student的靜的靜態方法態方法getSchoolName可以用可以用Student.getSchoolName( )訪問。訪問。 4.訪問控制修飾符訪問控制修飾符 訪問控制修飾符可以修飾類或者類的成員

54、。通過修訪問控制修飾符可以修飾類或者類的成員。通過修飾來達到控制一個類或者類的成員變量和方法的外飾來達到控制一個類或者類的成員變量和方法的外部可見性(外部是否可以訪問它們)。類的封裝主部可見性(外部是否可以訪問它們)。類的封裝主要通過合理定義類和類成員的訪問控制修飾符來實要通過合理定義類和類成員的訪問控制修飾符來實現。現。 一個類的訪問控制修飾符只能使用一個類的訪問控制修飾符只能使用public,表示該類表示該類是公有的,可以在任何地方定義和創建該類對象并是公有的,可以在任何地方定義和創建該類對象并使用。如果一個類沒有使用。如果一個類沒有public修飾,那么該類只能在修飾,那么該類只能在包內

55、使用,包是包內使用,包是java語言的一個邏輯組織單位,里語言的一個邏輯組織單位,里面可以包含很多類。面可以包含很多類。 在類的可見性確定后,可以對類的方法和屬性進行在類的可見性確定后,可以對類的方法和屬性進行修飾,進一步確定方法和屬性的可見性。定方法和修飾,進一步確定方法和屬性的可見性。定方法和屬性的修飾可以使用屬性的修飾可以使用4種訪問權限:公有種訪問權限:公有(public)、保護保護(protected)、默認(包內可用的)和私有、默認(包內可用的)和私有(private)。下表說明了不同修飾符下,成員的可見性。下表說明了不同修飾符下,成員的可見性。類的修飾可以用類的修飾可以用publ

56、ic或者沒有任何修飾(缺省),或者沒有任何修飾(缺省),而成員的修飾有而成員的修飾有4種。種。 不同修飾符下成員的可見性不同修飾符下成員的可見性 lJava常用類介紹常用類介紹 并不是任何一個類都需要從頭開始定義,并不是任何一個類都需要從頭開始定義,Java已經定義好很多基礎類供開發者使已經定義好很多基礎類供開發者使用。用。Java語言由語法規則和類庫組成,語言由語法規則和類庫組成,學習學習java要注意學習語法規則和類庫中要注意學習語法規則和類庫中的類。的類。 1.常用的常用的Java包包 Java語言提供的基礎類被組織在不同的語言提供的基礎類被組織在不同的Java包里面,每個包中都有很多完

57、成特包里面,每個包中都有很多完成特定功能的類。常用的定功能的類。常用的Java包如下:包如下: ljava.lang java.lang包定義了包定義了Java語言最基礎的一些類,如類語言最基礎的一些類,如類Object(所有類的父(所有類的父類)、數據類型類、字符串類類)、數據類型類、字符串類 (String,StringBuffer)以及)以及System類、類、Runtime類(提供了使用系統資源的方法)、線程類(多線程程序設計)、類(提供了使用系統資源的方法)、線程類(多線程程序設計)、Math(數學規則及常量庫)、異常類、錯誤類和(數學規則及常量庫)、異常類、錯誤類和Throwabl

58、e等。等。ljava.io提供了一套用以讀入或輸出到文件或其他輸入輸出源的輸入輸出流提供了一套用以讀入或輸出到文件或其他輸入輸出源的輸入輸出流的類。的類。ljava.util提供了日期,堆棧,向量,提供了日期,堆棧,向量,hash表等工具類。表等工具類。ljava.awt提供了獲取輸入信息或顯示信息的提供了獲取輸入信息或顯示信息的GUI元素,如視窗、按紐、滾元素,如視窗、按紐、滾動條等類。動條等類。ljava.applet提供了支持提供了支持Java小程序的類。小程序的類。提供了支持提供了支持Java網絡編程的類。網絡編程的類。ljava.sql提供了訪問數據庫類。提供了訪問數據庫類。ljav

59、a.awt.event提供了事件相關的類。提供了事件相關的類。 要使用這些包里面的類,程序中必須顯式引入(包含)這些包。這要使用這些包里面的類,程序中必須顯式引入(包含)這些包。這可以通過使用可以通過使用import關鍵字來實現。使用關鍵字來實現。使用java.lang包中的類無需顯式引入包中的類無需顯式引入java.lang包,該包會自動被包含。比如:包,該包會自動被包含。比如: import java.applet.Applet; /引入引入java.applet包中的包中的Applet類類 import java.awt.*; /引入引入java.awt包中的所有類包中的所有類 2. S

60、tring類的方法類的方法 String類主要用于字符串處理,該類里包含了常見的字類主要用于字符串處理,該類里包含了常見的字符串操作函數,比如連接、查找、替換、比較、截取符串操作函數,比如連接、查找、替換、比較、截取函數以及類型的轉換函數等。函數以及類型的轉換函數等。String類的對象一旦創建,類的對象一旦創建,其內容不可以更改。其內容不可以更改。 常用構造函數如下常用構造函數如下lString() :構造一個空字符串對象。:構造一個空字符串對象。 lString(byte bytes) :通過:通過byte數組構造字符串對象。數組構造字符串對象。 lString(char value) :

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論