電子商務(wù)解決方案設(shè)計(jì).doc
《電子商務(wù)解決方案設(shè)計(jì).doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《電子商務(wù)解決方案設(shè)計(jì).doc(27頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
《電子商務(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 edition Java 是由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_HOME 2、第一個(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ù)字??傊琂ava中的變量名不能以數(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表示。(表示-128~127之間的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í)例: variable3 2、關(guān)系運(yùn)算符: 關(guān)系運(yùn)算符:大于(>)、小于(<)、等于(==)、不等于(!=)、大于等于(>=)、小于等于(<=),關(guān)系運(yùn)算的結(jié)果是個(gè)boolean值。 見(jiàn)實(shí)例:OperatorTest 3、邏輯運(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í)例:LogicTest 4、關(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í)例:Variable4 5、條件運(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í)例:IfTest 2、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í)例:SwitchTest 3、循環(huán)控制語(yǔ)句 Java中的循環(huán)控制語(yǔ)句一共有3種,分別是while,do… while以及for循環(huán)。 1)while循環(huán),形式為: while(布爾表達(dá)式) { //待執(zhí)行的代碼 } 2)do…while循環(huán),新式為: do { //待執(zhí)行的代碼 } while(布爾表達(dá)式); while與do…while之間的區(qū)別:如果布爾表達(dá)式的第一次判斷就為false,那么while循環(huán)一次也不執(zhí)行;do…while循環(huán)則會(huì)執(zhí)行一次。如果布爾表達(dá)式第一次判斷為true,那么while循環(huán)與do…while循環(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、ForTest break語(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的,換句話說(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í)例:Test 5、屬性的定義和使用: 類(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í)例: Person 6、引用類(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í)例: StaticTest 2)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)的成員變量。可以在非靜態(tài)方法中訪問(wèn)靜態(tài)的成員變量。 總結(jié):靜態(tài)的只能訪問(wèn)靜態(tài)的;非靜態(tài)的可以訪問(wèn)一切。 見(jiàn)實(shí)例: StaticTest5 2、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)作為包名。www.myjjx.com,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í)例: PackageTest 4、導(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、ImprotTest 5、 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 int[10];或者int a[] = new int[10]; 2、數(shù)組中的元素索引是從0開(kāi)始的。對(duì)于數(shù)組來(lái)說(shuō),最大的索引==數(shù)組的長(zhǎng)度–1。 見(jiàn)實(shí)例: ArrayTest 3、定義數(shù)組的第3種方式: type[] 變量名= {new type[]}{逗號(hào)分隔的初始化值列表}; 4、Java中的每個(gè)數(shù)組都有一個(gè)名為length的屬性,表示數(shù)組的長(zhǎng)度。length屬性是public,final,int的。數(shù)組長(zhǎng)度一旦確定,就不能改變大小。 見(jiàn)實(shí)例: ArrayTest 5、int[] a = new int[10],其中a是一個(gè)引用,它指向了生成的數(shù)組對(duì)象的首地址,數(shù)組中每個(gè)元素都是int類(lèi)型,其中僅存放數(shù)據(jù)值本身。用畫(huà)圖表示! 見(jiàn)實(shí)例: ArrayTest2 注意:一維數(shù)組中存放原生數(shù)據(jù)類(lèi)型和引用類(lèi)型時(shí)的不同。 練習(xí):1、ArrayTest3 6、二維數(shù)組。二維數(shù)組是一種平面的二維結(jié)構(gòu),本質(zhì)上是數(shù)組的數(shù)組。 1)二維數(shù)組的定義方式:type[][] a = new type[2][3]; 2) 二維數(shù)組的初始化:{{逗號(hào)分隔的初始化值列表},{逗號(hào)分隔的初始化值列表}}; 見(jiàn)實(shí)例: ArrayTest4、ArrayTest5 練習(xí):ArrayTest5、BubbleSortTest 附:一、包裝類(lèi)(Wrapper Class)。針對(duì)于原生數(shù)據(jù)類(lèi)型的包裝。所有的包裝類(lèi)(8個(gè))都位于java.lang包下。Java中的8個(gè)包裝類(lèi)分別是:Byte, Short, Integer, Long, Float, Double, Character, Boolean。他們的使用方式都是一樣的,可以實(shí)現(xiàn)原生數(shù)據(jù)類(lèi)型與包裝類(lèi)型的雙向轉(zhuǎn)換。 見(jiàn)實(shí)例: IntegerTest 實(shí)驗(yàn)三: 一、IDE(Integrated Development Environment),集成開(kāi)發(fā)環(huán)境。 1、NetBeans。http://netbeans.org/ 2、JBuilder。 3、MyEclipse(日蝕、月蝕) 1)例:在myeclipse中編寫(xiě)一個(gè)能打印“hello world”字符串的程序,大家注意和以前文本編輯器的比較。 2)保存即編譯、錯(cuò)誤提示、運(yùn)行、顯示行號(hào)、基本屬性修改、class文件的存放路徑(不再關(guān)心)、compiler編譯器的修改。 二、集合框架: 1、存儲(chǔ)數(shù)據(jù)對(duì)象的集合。 集合中存放的依然是對(duì)象的引用而不是對(duì)象本身。 圖:集合的接口 2、集合的實(shí)現(xiàn)類(lèi):ArrayList 1)集合當(dāng)中只能放置對(duì)象的引用,無(wú)法放置原生數(shù)據(jù)類(lèi)型,我們需要使用原生數(shù)據(jù)類(lèi)型的包裝類(lèi)才能加入到集合當(dāng)中。 2)集合當(dāng)中放置的都是Object類(lèi)型,因此取出來(lái)的也是Object類(lèi)型,那么必須要使用強(qiáng)制類(lèi)型轉(zhuǎn)換將其轉(zhuǎn)換為真正的類(lèi)型(放置進(jìn)去的類(lèi)型)。 實(shí)例見(jiàn):ArrayListTest1、ArrayListTest2、ArrayListTest3 ArrayListTest4、ArrayListTest5- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 電子商務(wù)解決方案 設(shè)計(jì)
鏈接地址:http://m.jqnhouse.com/p-9213737.html