電子商務(wù)解決方案設(shè)計(jì).doc_第1頁(yè)
電子商務(wù)解決方案設(shè)計(jì).doc_第2頁(yè)
電子商務(wù)解決方案設(shè)計(jì).doc_第3頁(yè)
電子商務(wù)解決方案設(shè)計(jì).doc_第4頁(yè)
電子商務(wù)解決方案設(shè)計(jì).doc_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

電子商務(wù)解決方案設(shè)計(jì)教案實(shí)驗(yàn)一:java基礎(chǔ)(一)一、java入門(mén) Java SE:java standard edition Java ME:java micro edition Java EE: java enterprise editionJava 是由sun公司推出(但2010年被oracle公司收購(gòu),收購(gòu)價(jià)格:74億美元)從j2se、j2me、j2ee的演變,從jdk5.0開(kāi)始稱(chēng)為se、me、ee。1、jdk的下載與安裝Jdk:java development kit (java 開(kāi)發(fā)包)Jre:java runtime environment(java執(zhí)行環(huán)境)Jdk包含了jre。下載過(guò)程見(jiàn)課堂演示。安裝完成后運(yùn)行:java version如能顯示版本信息,即表明java安裝成功。Jdk1.4 jdk1.5(5.0) jdk1.6(6.0)設(shè)置環(huán)境變量:classpath path JAVA_HOME2、第一個(gè)java程序編寫(xiě)程序時(shí)可以是記事本、ultraedit(高級(jí)文本編輯工具)、IDE(integrated development environment)。例1-1:Test類(lèi)public class Test public static vod main(String args) System.out.println(“hello world!”);3、java程序的編譯與執(zhí)行Java程序的執(zhí)行過(guò)程分為兩步:(1)編譯:javac 文件名.java(2)執(zhí)行: java 文件名(這是一個(gè)后綴為class的字節(jié)碼文件)注意:修改過(guò)的原文件,要重新執(zhí)行上述的(1)(2)步驟。JVM(java virtual machine java虛擬機(jī))來(lái)執(zhí)行字節(jié)碼文件。二、原生數(shù)據(jù)類(lèi)型1、Java中的數(shù)據(jù)類(lèi)型: 1) 原生數(shù)據(jù)類(lèi)型 (Primitive Data Type) 2) 引用類(lèi)型(對(duì)象類(lèi)型) (Reference Type) 2. 變量與常量:所謂常量,就是值不會(huì)變化的量;所謂變量,就是值可以變化的量。3. 變量定義與賦值:(1)變量類(lèi)型 變量名; 變量名 = 變量值; int a;a = 2; (2)變量類(lèi)型 變量名 = 變量值; int a = 1;= 表示賦值,將等號(hào)右邊的值賦給了左邊的變量。 4、變量名命名規(guī)則:在Java中,變量名以下劃線、字母、$符號(hào)開(kāi)頭,并且后跟下劃線、字母、$符號(hào)以及數(shù)字??傊?,Java中的變量名不能以數(shù)字開(kāi)頭。5、注釋?zhuān)鹤⑨屖墙o人看的,不是給計(jì)算機(jī)看的。Java中共有3種類(lèi)型的注釋?zhuān)?1)單行注釋?zhuān)阂?開(kāi)頭,/后面的所有內(nèi)容均被當(dāng)作注釋處理。 2)多行注釋?zhuān)阂?*開(kāi)頭,以*/結(jié)束,中間的所有內(nèi)容均被當(dāng)作注釋處理。關(guān)于多行注釋?zhuān)枰⒁獾氖?,多行注釋不能嵌套?3)另一種多行注釋。用于產(chǎn)生Java Doc幫助文檔。暫且不介紹。/* 注釋內(nèi)容*/6、Java中的原生數(shù)據(jù)類(lèi)型共有8種: 1) 整型:使用int表示。(32位) 2)字節(jié)型:使用byte表示。(表示-128127之間的256個(gè)整數(shù))。 3)短整型:使用short表示。(16位) 4)長(zhǎng)整型:使用long表示。(64位)5)單精度浮點(diǎn)型:使用float表示。所謂浮點(diǎn)型,指的就是小數(shù),也叫做實(shí)數(shù),比如1.2。 6)雙精度浮點(diǎn)型:使用double表示。雙精度浮點(diǎn)型表示的數(shù)據(jù)范圍要比單精度浮點(diǎn)型大。 7)字符型:使用char表示(char是character的縮寫(xiě))。所謂字符,就是單個(gè)的字符表示,比如字母a,或者中文張,外面用單引號(hào)包圍上。比如char a = B; char b = 張; 8)布爾類(lèi)型,使用boolean表示。布爾類(lèi)型只有兩種可能值,分別是true與false。7、變量使用過(guò)程中應(yīng)注意的問(wèn)題:1)Java中的所有浮點(diǎn)類(lèi)型默認(rèn)情況下都是double。不能將double類(lèi)型的值賦給float類(lèi)型的變量,即便該double類(lèi)型的值處于float類(lèi)型的范圍內(nèi)也是不可以的。總之,能否成功賦值取決于等號(hào)右邊的值類(lèi)型與等號(hào)左邊的變量類(lèi)型是否一致。 2)如何將double類(lèi)型的值賦給float類(lèi)型的變量?答案就是(1)強(qiáng)制類(lèi)型轉(zhuǎn)換,將double類(lèi)型的值強(qiáng)制轉(zhuǎn)換為float類(lèi)型。(2)使用java語(yǔ)言的支持。 強(qiáng)制轉(zhuǎn)換的語(yǔ)法: 類(lèi)型 變量名 = (類(lèi)型)變量值; 3)變量在使用前必須要賦值;變量必須要聲明其類(lèi)型方可使用;變量在使用前必須要定義,并且只能定義一次。 4)如下代碼無(wú)法通過(guò)編譯: int a = 1; short b = a; a是int類(lèi)型,b是short類(lèi)型,int類(lèi)型表示的數(shù)據(jù)范圍要比short類(lèi)型大,不能將表示范圍大的值賦給表示范圍小的變量。 5)如下代碼可以通過(guò)編譯: short a = 1; int b = a; a是short類(lèi)型,b是int類(lèi)型,int類(lèi)型表示的數(shù)據(jù)范圍要比short類(lèi)型大,可以將表示范圍小的值賦給表示范圍大的變量。 總結(jié):可以將表示范圍小的值賦給表示范圍大的變量;但不能直接將表示范圍大的值賦給表示范圍小的變量,只能通過(guò)強(qiáng)制類(lèi)型轉(zhuǎn)換實(shí)現(xiàn)。 上述內(nèi)容驗(yàn)證見(jiàn)實(shí)例:test、variable1、variable2三、運(yùn)算符1、算術(shù)運(yùn)算符:1)當(dāng)有若干個(gè)變量參與運(yùn)算時(shí),結(jié)果類(lèi)型取決于這些變量中表示范圍最大的那個(gè)變量類(lèi)型。比如,參與運(yùn)算的變量中,有整型int,有雙精度浮點(diǎn)型double,有短整型short,那么最后的結(jié)果類(lèi)型就是double。 2)int a = 1; int b = 2; double c = (double)a / b; 上面的代碼中,a與b都是整型,但是通過(guò)(double)a這種轉(zhuǎn)換將a轉(zhuǎn)換為一個(gè)匿名的變量,該變量的類(lèi)型是double,但是要注意:a本身依舊是int類(lèi)型,而不是double類(lèi)型,這樣,(double)a / b就是double類(lèi)型除以int類(lèi)型,結(jié)果自然是double類(lèi)型。 3)取模運(yùn)算符:使用%表示。 int a = 5; int b = 3; int c = a % b; 上面代碼的運(yùn)行結(jié)果是2,因?yàn)?除以3結(jié)果是1余2。 取模的規(guī)律:取模的結(jié)果符號(hào)永遠(yuǎn)與被除數(shù)的符號(hào)相同 int a = 5; int b = -3; int c = a % b; 被除數(shù)是5,那么取模的結(jié)果是2 int a = -5; int b = 3; int c = a % b; 被除數(shù)是-5,那么取模的結(jié)果是-2。上述內(nèi)容驗(yàn)證見(jiàn)實(shí)例: variable32、關(guān)系運(yùn)算符:關(guān)系運(yùn)算符:大于()、小于(=)、小于等于(=),關(guān)系運(yùn)算的結(jié)果是個(gè)boolean值。 見(jiàn)實(shí)例:OperatorTest3、邏輯運(yùn)算符:重點(diǎn)講解兩個(gè),邏輯運(yùn)算符本身也返回一個(gè)boolean值。 1) 邏輯與:使用&表示,邏輯與是個(gè)雙目運(yùn)算符(即有兩個(gè)操作數(shù)的運(yùn)算符),只有當(dāng)兩個(gè)操作數(shù)都為真的時(shí)候,結(jié)果才為真;其余情況結(jié)果均為假。邏輯與表示的并且的意思。 2) 邏輯或:使用|表示,邏輯或也是個(gè)雙目運(yùn)算符,只有當(dāng)兩個(gè)操作數(shù)都為假的時(shí)候,結(jié)果才為假;其余情況結(jié)果均為真。邏輯或表示或者的意思。 見(jiàn)實(shí)例:LogicTest4、關(guān)于變量的自增與自減運(yùn)算。 1) 關(guān)于int b = a+,作用是將a的值先賦給b,然后再讓a自增1。 2) 關(guān)于int b = +a,作用是將a的值先自增1,然后將自增后的結(jié)果賦給b。 見(jiàn)實(shí)例:Variable45、條件運(yùn)算符(三元表達(dá)式),其形式為: type d = a ? b : c; 具體化形式為:int d = 2 1 ? 3 : 4; 注意: 輕量級(jí)的文本編輯器:UltraEdit、Editplus、vi、vim、gvim 見(jiàn)實(shí)例:Test2四、流程控制語(yǔ)句1、if 語(yǔ)句 第一種形式: if(布爾表達(dá)式) /待執(zhí)行的代碼 第二種形式: if(布爾表達(dá)式) /待執(zhí)行的代碼 else /待執(zhí)行的代碼 第三種形式: if(布爾表達(dá)式) /待執(zhí)行的代碼 else if(布爾表達(dá)式) /待執(zhí)行的代碼 else if(布爾表達(dá)式) /待執(zhí)行的代碼 else /待執(zhí)行的代碼 見(jiàn)實(shí)例:IfTest2、switch語(yǔ)句: switch(變量) /此處的變量類(lèi)型就目前所學(xué)內(nèi)容來(lái)看,只能為4種類(lèi)型:byte, short, int, char。 case 常量1: /待執(zhí)行的代碼 break; case 常量2: /待執(zhí)行的代碼 break; case 常量3: /待執(zhí)行的代碼 break; default: /待執(zhí)行的代碼 雖然case語(yǔ)句中的break是可選的,但在絕大多數(shù)情況下,如果沒(méi)有break,程序的邏輯就會(huì)發(fā)生錯(cuò)誤,因此,通常情況下都需要加上break。見(jiàn)實(shí)例:SwitchTest3、循環(huán)控制語(yǔ)句Java中的循環(huán)控制語(yǔ)句一共有3種,分別是while,do while以及for循環(huán)。 1)while循環(huán),形式為: while(布爾表達(dá)式) /待執(zhí)行的代碼 2)dowhile循環(huán),新式為: do /待執(zhí)行的代碼 while(布爾表達(dá)式); while與dowhile之間的區(qū)別:如果布爾表達(dá)式的第一次判斷就為false,那么while循環(huán)一次也不執(zhí)行;dowhile循環(huán)則會(huì)執(zhí)行一次。如果布爾表達(dá)式第一次判斷為true,那么while循環(huán)與dowhile循環(huán)等價(jià)。 3)for循環(huán)(使用最多的一種循環(huán)),形式為: for(變量初始化; 條件判斷; 步進(jìn)) /待執(zhí)行的代碼 for循環(huán)的執(zhí)行過(guò)程: a) 執(zhí)行變量初始化。 b) 執(zhí)行條件判斷。如果條件判斷結(jié)果為假,那么退出for循環(huán),開(kāi)始執(zhí)行循環(huán)后面的代碼;如果條件判斷為真,執(zhí)行for循環(huán)里面的代碼。 c) 執(zhí)行步進(jìn)。 d) 重復(fù)步驟b。 上述內(nèi)容見(jiàn)實(shí)例:WhileTest、DoWhileTest、ForTestbreak語(yǔ)句:經(jīng)常用在循環(huán)語(yǔ)句中,用于跳出整個(gè)循環(huán),執(zhí)行循環(huán)后面的代碼。 2. continue語(yǔ)句:經(jīng)常用在循環(huán)語(yǔ)句中,用于跳出當(dāng)前的這個(gè)循環(huán)(或者是跳出本次循環(huán)),開(kāi)始下一次循環(huán)的執(zhí)行。 實(shí)驗(yàn)二:java基礎(chǔ)(二)一、 面向?qū)ο蟪绦蛟O(shè)計(jì)(Object Oriented Programming,OOP;Object Oriented Design, OOD)什么是面向?qū)ο??在面向?qū)ο蟪绦蛟O(shè)計(jì)中有兩個(gè)重要的概念:類(lèi)(class)與對(duì)象(object)。 1、類(lèi):類(lèi)是一種抽象的概念,類(lèi)中包含了數(shù)據(jù)(通常使用名詞來(lái)表示)與對(duì)數(shù)據(jù)的操縱(通常使用動(dòng)詞來(lái)表示)。比如說(shuō)人就是一種抽象的概念,人具有姓名、年齡、身高等數(shù)據(jù),還有吃飯、跑步等操縱數(shù)據(jù)的動(dòng)作。 2、對(duì)象:對(duì)象是一種具體的概念,是類(lèi)的一種具體表示方式。比如說(shuō)人是一個(gè)類(lèi),而張三、李四、王五等具體的人就是對(duì)象。 3、類(lèi)所包含的內(nèi)容,類(lèi)一共包含兩部分內(nèi)容: a) 數(shù)據(jù),數(shù)據(jù)在類(lèi)中稱(chēng)作屬性(Property或者Attribute)或者叫成員變量(Member variable)。 b) 對(duì)數(shù)據(jù)的操縱,這種操縱在類(lèi)中稱(chēng)作方法(method)。 二、類(lèi)及方法的定義面向?qū)ο蟪绦蛟O(shè)計(jì)的三大基本特征:繼承、封裝、多態(tài) 封裝:類(lèi)包含了數(shù)據(jù)與方法,將數(shù)據(jù)與方法放在一個(gè)類(lèi)中就構(gòu)成了封裝。 1、類(lèi)的定義: 修飾符 class 類(lèi)的名字 /類(lèi)的內(nèi)容(包含了屬性與方法) 2、方法的定義: 修飾符 返回類(lèi)型 方法名稱(chēng)(參數(shù)1, 參數(shù)2, 參數(shù)3) /方法體 注意: 1)main方法是整個(gè)Java程序的入口點(diǎn),如果類(lèi)的定義中沒(méi)有main方法,則程序無(wú)法執(zhí)行。 2)方法定義不能嵌套,也就說(shuō)不能在一個(gè)方法中定義另外一個(gè)方法。方法只能定義在類(lèi)中。 3)關(guān)于方法的執(zhí)行:首先需要定義方法,接下來(lái)就可以使用方法(調(diào)用方法),當(dāng)方法調(diào)用完畢后,方法可以返回值。方法到底是否返回值是由方法的定義決定的。 4)如果一個(gè)java源文件中定義了多個(gè)類(lèi),那么這些類(lèi)中最多只能有一個(gè)類(lèi)是public的,換句話(huà)說(shuō),定義的多個(gè)類(lèi)可以都不是public的。 Main方法要放在public類(lèi)中,如果沒(méi)有public類(lèi),那Main方法放在哪個(gè)類(lèi)中都可以。3、生成對(duì)象:通過(guò)類(lèi)來(lái)生成對(duì)象(通常使用new關(guān)鍵字來(lái)生成對(duì)象)。 public class Person 類(lèi)名 變量名 = new 類(lèi)名(); Person person = new Person(); Person person2 = new Person(); Person person3 = new Person();4、方法的調(diào)用:方法調(diào)用需要通過(guò)對(duì)象來(lái)完成,方法調(diào)用的形式是: 對(duì)象變量.方法名(參數(shù)值1, 參數(shù)值2, 參數(shù)值3.); 關(guān)于方法的注意事項(xiàng): 1) 在方法定義中,方法的返回類(lèi)型與return后面的變量或常量類(lèi)型保持一致。 2) 在方法調(diào)用時(shí),給方法傳遞的參數(shù)需要與方法定義時(shí)的參數(shù)保持一致(參數(shù)個(gè)數(shù)一致,參數(shù)類(lèi)型一致)。 3) 方法定義時(shí)的返回類(lèi)型與接收方法返回值的變量類(lèi)型保持一致。 public int add(int a, int b) return a + b; 方法定義時(shí)的參數(shù)叫做形式參數(shù)。 int a = test.add(8, 3); 方法調(diào)用時(shí)所賦予的具體值叫做實(shí)際參數(shù)。 4)關(guān)鍵字void表示方法不返回值。 如果方法不返回值,那么聲明方法的時(shí)候使用void關(guān)鍵字,在方法定義中可以有兩種情況實(shí)現(xiàn)不返回值: a) 不使用return語(yǔ)句。 b) 使用return,但return后面沒(méi)有任何值或者變量,return后面只有一個(gè)分號(hào),表示退出方法,返回到方法的調(diào)用端。 使用方式: return;上述內(nèi)容見(jiàn)實(shí)例:Test5、屬性的定義和使用:類(lèi)中的屬性又叫做成員變量(member variable),屬性用英文表示為property或者attribute。 對(duì)象(Object)又叫做實(shí)例(Instance)。生成一個(gè)對(duì)象的過(guò)程又叫做實(shí)例化。 1)命名約定 a) 類(lèi):首字母大寫(xiě),如果一個(gè)類(lèi)名由多個(gè)單詞構(gòu)成,那么每個(gè)單詞的首字母都大寫(xiě),中間不使用任何的連接符。比如Person類(lèi),MemberTest類(lèi)。 b) 方法:首字母小寫(xiě)。如果一個(gè)方法由多個(gè)單詞構(gòu)成,那么第一個(gè)單詞的所有字母全都小寫(xiě),從第二個(gè)單詞開(kāi)始,每個(gè)單詞的首字母大寫(xiě)。比如add,addThreeInt。 c) 屬性:命名約定與方法相同。比如age,ageOfPerson。 2)屬性需要定義在類(lèi)中,又叫做成員變量;而定義在方法中的變量叫做局部變量。 3)定義屬性 public class Person 修飾符 類(lèi)型 屬性名稱(chēng); 4)使用屬性與方法一樣,使用.運(yùn)算符。首先需要生成類(lèi)的實(shí)例,然后使用實(shí)例+”.”的方式來(lái)使用屬性。 比如: Person person = new Person(); person.age 局部變量使用前必須要聲明并賦初值;成員變量使用前必須要聲明,但可以不賦初值。 5)成員變量與局部變量的聯(lián)系與區(qū)別: a) 無(wú)論是成員變量還是局部變量,使用前都需要聲明(定義)。 b) 對(duì)于局部變量來(lái)說(shuō),使用前必須要初始化;對(duì)于成員變量來(lái)說(shuō),使用前可以不初始化。如果沒(méi)有初始化成員變量就開(kāi)始使用,那么每個(gè)類(lèi)型的成員變量都有一個(gè)默認(rèn)的初始值 i. byte、short、int、long類(lèi)型的初始值為0 ii. float、double類(lèi)型的初始值為0.0 iii. char類(lèi)型的初始值u0000 iv. boolean類(lèi)型的初始值為false 上述內(nèi)容見(jiàn)實(shí)例: Person6、引用類(lèi)型(reference type):引用類(lèi)型是用在對(duì)象上的。一個(gè)對(duì)象可以被多個(gè)引用所指向,但同一時(shí)刻,每個(gè)引用只能指向唯一的一個(gè)對(duì)象。如果一個(gè)對(duì)象被多個(gè)引用所指向,那么無(wú)論哪個(gè)引用對(duì)對(duì)象的屬性進(jìn)行了修改,都會(huì)反映到其他的引用當(dāng)中。 上述內(nèi)容見(jiàn)實(shí)例:People在該實(shí)例中用畫(huà)圖表示。注意:1)如果一個(gè)類(lèi)包含了屬性與方法,那么該類(lèi)的每一個(gè)對(duì)象都具有自己的屬性,但無(wú)論一個(gè)類(lèi)有多少個(gè)對(duì)象,這些對(duì)象共享同一個(gè)方法。 2)關(guān)于方法參數(shù)傳遞的總結(jié):對(duì)于Java中的方法參數(shù)傳遞,無(wú)論傳遞的是原生數(shù)據(jù)類(lèi)型還是引用類(lèi)型,統(tǒng)一是傳值(pass by value)。 3)什么類(lèi)型的引用就能指向什么類(lèi)型的對(duì)象,比如People類(lèi)型的引用就能指向People類(lèi)型的對(duì)象,但不能指向Student類(lèi)型的對(duì)象。比如: People people = new People(); / 正確 People people = new Student(); /錯(cuò)誤上述內(nèi)容見(jiàn)實(shí)例:ParamTest三、構(gòu)造方法:構(gòu)造方法(Constructor):構(gòu)造方法用于完成對(duì)象屬性的初始化工作。1、構(gòu)造方法的特點(diǎn): a) 構(gòu)造方法的名字必須與類(lèi)名完全一致(包含大小寫(xiě)) b) 構(gòu)造方法沒(méi)有返回值,連void也不能出現(xiàn)。 c) 如果在定義一個(gè)類(lèi)的時(shí)候,沒(méi)有為類(lèi)聲明構(gòu)造方法,那么Java編譯器會(huì)自動(dòng)為類(lèi)添加一個(gè)沒(méi)有參數(shù)且方法體為空的構(gòu)造方法(默認(rèn)的構(gòu)造方法) d) 如果在定義一個(gè)類(lèi)的時(shí)候,為類(lèi)聲明了構(gòu)造方法,那么Java編譯器就不會(huì)再為類(lèi)添加構(gòu)造方法了。 e) 不能顯式調(diào)用類(lèi)的構(gòu)造方法,構(gòu)造方法通常是通過(guò)new關(guān)鍵字隱式調(diào)用。 2、new關(guān)鍵字在生成對(duì)象時(shí)完成了三件事情: a) 為對(duì)象開(kāi)辟內(nèi)存空間。 b) 調(diào)用類(lèi)的構(gòu)造方法。 c) 將生成的對(duì)象的地址返回。 3、默認(rèn)的構(gòu)造方法:構(gòu)造方法沒(méi)有參數(shù)且方法體為空。 使用new來(lái)生成對(duì)象的時(shí)候,后面的小括號(hào)()表示構(gòu)造方法的參數(shù)列表,如果構(gòu)造方法不接收參數(shù),那么小括號(hào)中的內(nèi)容為空;如果構(gòu)造方法接收參數(shù),那么小括號(hào)中的實(shí)際參數(shù)就需要與構(gòu)造方法定義中的形式參數(shù)保持一致(參數(shù)數(shù)量一致、參數(shù)類(lèi)型一致、按照順序逐一賦值)。 上述內(nèi)容見(jiàn)實(shí)例:PersonTest四、方法的重構(gòu)和重載(overload)1、方法的重構(gòu):如果在子類(lèi)中定義的方法與其直接超類(lèi)(父類(lèi))的某個(gè)方法有相同的名稱(chēng)和參數(shù),則稱(chēng)該子類(lèi)重構(gòu)了該超類(lèi)(父類(lèi))的該方法。方法重構(gòu)(Override):子類(lèi)與父類(lèi)的方法返回類(lèi)型一樣、方法名稱(chēng)一樣,參數(shù)一樣,這樣我們說(shuō)子類(lèi)與父類(lèi)的方法構(gòu)成了重寫(xiě)關(guān)系。 2、方法的重載: 同一個(gè)類(lèi)中,定義了兩個(gè)或多個(gè)方法名字相同,但方法參數(shù)不同,這就表明了方法間的重載關(guān)系。方法參數(shù)不同有兩層含義:1)參數(shù)個(gè)數(shù)不同。2)參數(shù)類(lèi)型不同。 注意:方法的返回值對(duì)重載沒(méi)有任何影響。 上述內(nèi)容見(jiàn)實(shí)例:OverLoadTest、OverLoadTest2注意:方法重構(gòu)與方法重載之間的關(guān)系:重載發(fā)生在同一個(gè)類(lèi)內(nèi)部的兩個(gè)或多個(gè)方法。重構(gòu)發(fā)生在父類(lèi)與子類(lèi)之間。 五、繼承(Inheritence):1、定義及格式:Java是單繼承的,意味著一個(gè)類(lèi)只能從另一個(gè)類(lèi)繼承(被繼承的類(lèi)叫做父類(lèi)【基類(lèi),base class】, 繼承的類(lèi)叫做子類(lèi)),Java中的繼承使用extends關(guān)鍵字。 格式: class 類(lèi)名 extends 類(lèi)名2、注意:1)父類(lèi)有的,子類(lèi)也有 2)父類(lèi)沒(méi)有的,子類(lèi)可以增加 3)父類(lèi)有的,子類(lèi)可以改變 4)構(gòu)造方法不能被繼承 5)方法和屬性可以被繼承 6)在定義一個(gè)類(lèi)的時(shí)候,如果沒(méi)有顯式指定該類(lèi)的父類(lèi),那么該類(lèi)就會(huì)繼承于java.lang.Object類(lèi)(JDK提供的一個(gè)類(lèi),Object類(lèi)是Java中所有類(lèi)的直接或間接父類(lèi))。 上述內(nèi)容見(jiàn)實(shí)例:Child、InheritenceTest六、多態(tài):多態(tài)(Polymorphism):我們說(shuō)子類(lèi)就是父類(lèi)(玫瑰是花,男人是人),因此多態(tài)的意思就是:父類(lèi)型的引用可以指向子類(lèi)的對(duì)象。 但要注意的是:這個(gè)父類(lèi)型的引用在執(zhí)行所指向子類(lèi)的方法時(shí),該方法一定是父類(lèi)中存在的方法。上述內(nèi)容見(jiàn)實(shí)例:PolyTest七、接口(interface):1、接口的地位等同于class,接口中的所有方法都是抽象方法。在聲明接口中的方法時(shí),可以使用abstract關(guān)鍵字,也可以不使用。通常情況下,都會(huì)省略掉abstract關(guān)鍵字。2、類(lèi)可以實(shí)現(xiàn)接口。實(shí)現(xiàn)使用關(guān)鍵字implements表示,代表了某個(gè)類(lèi)實(shí)現(xiàn)了某個(gè)接口。一個(gè)類(lèi)實(shí)現(xiàn)了某個(gè)接口,那么該類(lèi)必須要實(shí)現(xiàn)接口中聲明的所有方法。 Java是單繼承的,也就是說(shuō)某個(gè)類(lèi)只能有唯一一個(gè)父類(lèi);一個(gè)類(lèi)可以實(shí)現(xiàn)多個(gè)接口,多個(gè)接口之間使用逗號(hào)分隔。上述內(nèi)容見(jiàn)實(shí)例: Test3八、一些關(guān)鍵字:1、static關(guān)鍵字:可以用于修飾屬性,也可以用于修飾方法,還可以用于修飾類(lèi)(后面的課程講)1)static修飾屬性:無(wú)論一個(gè)類(lèi)生成了多少個(gè)對(duì)象,所有這些對(duì)象共同使用唯一一份靜態(tài)的成員變量;一個(gè)對(duì)象對(duì)該靜態(tài)成員變量進(jìn)行了修改,其他對(duì)象的該靜態(tài)成員變量的值也會(huì)隨之發(fā)生變化。如果一個(gè)成員變量是static的,那么我們可以通過(guò) 類(lèi)名.成員變量名 的方式來(lái)使用它(推薦使用這種方式)。上述內(nèi)容見(jiàn)實(shí)例: StaticTest2)static修飾方法:static修飾的方法叫做靜態(tài)方法。對(duì)于靜態(tài)方法來(lái)說(shuō),可以使用類(lèi)名.方法名的方式來(lái)訪問(wèn)。注意:不能在靜態(tài)方法中訪問(wèn)非靜態(tài)成員變量;可以在靜態(tài)方法中訪問(wèn)靜態(tài)的成員變量??梢栽诜庆o態(tài)方法中訪問(wèn)靜態(tài)的成員變量??偨Y(jié):靜態(tài)的只能訪問(wèn)靜態(tài)的;非靜態(tài)的可以訪問(wèn)一切。見(jiàn)實(shí)例: StaticTest52、final關(guān)鍵字:final可以修飾屬性、方法、類(lèi)。1) final修飾類(lèi):當(dāng)一個(gè)類(lèi)被final所修飾時(shí),表示該類(lèi)是一個(gè)終態(tài)類(lèi),即不能被繼承。2)final修飾方法:當(dāng)一個(gè)方法被final所修飾時(shí),表示該方法是一個(gè)終態(tài)方法,即不能被重寫(xiě)(Override)。3)final修飾屬性:當(dāng)一個(gè)屬性被final所修飾時(shí),表示該屬性不能被改寫(xiě)。上述內(nèi)容見(jiàn)實(shí)例: FinalTest、FinalTest2、FinalTest3 3、包(package)。用于將完成不同功能的類(lèi)分門(mén)別類(lèi),放在不同的目錄(包)下。包的命名規(guī)則:將公司域名反轉(zhuǎn)作為包名。,com.myjjx(包名),對(duì)于包名:每個(gè)字母都需要小寫(xiě)。如果定義類(lèi)的時(shí)候沒(méi)有使用package,那么Java就認(rèn)為我們所定義的類(lèi)位于默認(rèn)包里面(default package)。1)編譯帶有package聲明的Java源文件有兩種方式:a) 直接編譯,然后根據(jù)類(lèi)中所定義的包名,逐一手工建立目錄結(jié)構(gòu),最后將生成的class文件放到該目錄結(jié)構(gòu)中(很少使用,比較麻煩)。b) 使用編譯參數(shù)d,方式為javac d . 源文件.java,這樣在編譯后,編譯器會(huì)自動(dòng)幫助我們建立好包所對(duì)應(yīng)的目錄結(jié)構(gòu)。2)有兩個(gè)包名,分別是aa.bb.cc與aa.bb.cc.dd,那么我們稱(chēng)后者為前者的子包。見(jiàn)實(shí)例: PackageTest4、導(dǎo)入(import),將使用package分離的各個(gè)類(lèi)導(dǎo)入回來(lái),讓編譯器能夠找到所需要的類(lèi)。1)import的語(yǔ)法:import com.myjjx.PackageTest1;2)import com.myjjx.*,表示導(dǎo)入com.myjjx包下面的所有類(lèi)。3)import aa.bb.*并不會(huì)導(dǎo)入aa.bb.cc包下面的類(lèi)。這時(shí)需要這樣寫(xiě):import aa.bb.*;import aa.bb.cc.*;4)關(guān)于package、import、class的順序問(wèn)題:a) 首先需要定義包(package),可選b) 接下來(lái)使用import進(jìn)行導(dǎo)入,可選c) 然后才是class或interface的定義。5)如果兩個(gè)類(lèi)在同一個(gè)包下面,那么則不需要導(dǎo)入,直接使用即可。見(jiàn)實(shí)例: PackageTest1、ImprotTest5、 instanceof:判斷某個(gè)對(duì)象是否是某個(gè)類(lèi)的實(shí)例。語(yǔ)法形式:引用名instanceof 類(lèi)名(接口名),返回一個(gè)boolean值。見(jiàn)實(shí)例: InstanceofTest九、訪問(wèn)修飾符(access modifier)。1、public(公共的):被public所修飾的屬性和方法可以被所有類(lèi)訪問(wèn)。2、protected(受保護(hù)的):被protected所修飾的屬性和方法可以在類(lèi)內(nèi)部、相同包以及該類(lèi)的子類(lèi)所訪問(wèn)。3、private(私有的):被private所修飾的屬性和方法只能在該類(lèi)內(nèi)部使用4、默認(rèn)的(不加任何訪問(wèn)修飾符):在類(lèi)內(nèi)部以及相同包下面的類(lèi)所使用。見(jiàn)實(shí)例:A、B、C、D十、java.lang.Object類(lèi)。java.lang包在使用的時(shí)候無(wú)需顯式導(dǎo)入,編譯時(shí)由編譯器自動(dòng)幫助我們導(dǎo)入。API (Application Programming Interface),應(yīng)用編程接口。十一、String類(lèi)1、對(duì)于String對(duì)象的相等性判斷來(lái)說(shuō),請(qǐng)使用equals()方法,而不要使用=。2、當(dāng)使用+拼接字符串時(shí),會(huì)生成新的String對(duì)象,而不是向原有的String對(duì)象追加內(nèi)容。3、String I = new String(“aaa”);和 String I = “aaa”返回的地址不同,因?yàn)樗鼈兇鎯?chǔ)在不同的空間。見(jiàn)實(shí)例: StringTest、StringTest2十二、數(shù)組:(Array):相同類(lèi)型數(shù)據(jù)的集合就叫做數(shù)組。1、如何定義一維數(shù)組。type 變量名= new type數(shù)組中元素的個(gè)數(shù);可以按照下列方式定義長(zhǎng)度為10的數(shù)組:int a = new int10;或者int a = new int10;2、數(shù)組中的元素索引是

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論