Java程序的設(shè)計(jì)的項(xiàng)目化教程教學(xué)資源模塊1—Java基礎(chǔ)_第1頁
Java程序的設(shè)計(jì)的項(xiàng)目化教程教學(xué)資源模塊1—Java基礎(chǔ)_第2頁
Java程序的設(shè)計(jì)的項(xiàng)目化教程教學(xué)資源模塊1—Java基礎(chǔ)_第3頁
Java程序的設(shè)計(jì)的項(xiàng)目化教程教學(xué)資源模塊1—Java基礎(chǔ)_第4頁
Java程序的設(shè)計(jì)的項(xiàng)目化教程教學(xué)資源模塊1—Java基礎(chǔ)_第5頁
已閱讀5頁,還剩55頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 java程序設(shè)計(jì)模塊1java基礎(chǔ) 主講教師:成奮華模塊模塊1java基礎(chǔ)基礎(chǔ) 1.1 java環(huán)境環(huán)境njava是1995年由sun microsystems公司推出的完全面向?qū)ο蟮木幊陶Z言n充分吸取了c+語言的優(yōu)點(diǎn),采用了程序員所熟悉的c和c+語言的許多語法n去掉了c語言中指針、內(nèi)存申請(qǐng)和釋放等影響程序鍵壯性的部分n跨平臺(tái):解釋執(zhí)行而不是編譯執(zhí)行的運(yùn)行環(huán)境1 1關(guān)于關(guān)于javajavajava2有以下幾個(gè)版本:n(1)j2me(java2 micro edition) 針對(duì)嵌入式技術(shù)。n(2) j2se(java2 standard edition) 針對(duì)桌面計(jì)算機(jī)開發(fā)。n(3) j2e

2、e(java2 enterprise edition) 針對(duì)企業(yè)級(jí)的應(yīng)用解決方案(主要有jdbc、corba、ejb、jsp、javaservlets以及對(duì)xml的支持)。2 2javajava程序的特點(diǎn)程序的特點(diǎn) n簡單性 面向?qū)ο髇分布性 魯棒性n安全性 體系結(jié)構(gòu)中立n可移植性 解釋執(zhí)行n高性能 多線程n動(dòng)態(tài)性 3 javajava編程環(huán)境編程環(huán)境njdk是整個(gè)java的核心,包括了java運(yùn)行環(huán)境(java runtime environment),許多java工具和java基礎(chǔ)的類庫 njavac:java語言編譯器,生成java字節(jié)碼,.class文件。njava:java字節(jié)碼解釋

3、器。njavadoc:類幫助文檔生成器。njar:打包工具。njavap:java字節(jié)碼分解程序,本程序返回java程序的成員屬性及方法等信息。njava applet viewer:小應(yīng)用程序?yàn)g覽器工具,用于測(cè)試并運(yùn)行applet小程序。njava debugger api:java調(diào)試工具。 3 javajava編程環(huán)境編程環(huán)境njava程序的編輯可以使用任何一種文本編輯器,例如:記事本、word等,只要把編輯好的文件保存為.java文件。n集成開發(fā)環(huán)境:jbuilder和jcreator pron當(dāng)要用到某些自己定義的類時(shí),必須指明它們存放目錄,這就需要設(shè)置環(huán)境變量參數(shù)classpath

4、和path。n在“我的電腦”上單擊右鍵,選擇“屬性”|“高級(jí) ” | “ 環(huán) 境 變 量 ” , 在 系 統(tǒng) 變 量 中 編 輯classpath和path4 4javajava應(yīng)用程序和應(yīng)用程序和javajava小程序小程序 java應(yīng)用程序java applicationjava小程序java applet基于窗口的應(yīng)用程序(圖形用戶界面)控制臺(tái)應(yīng)用程序(基于字符界面)在支持java的平臺(tái)上通過解釋器java.exe獨(dú)立運(yùn)行程序可在任何操作系統(tǒng)下執(zhí)行駐留在本地機(jī)器的硬盤上需要執(zhí)行時(shí)把它從硬盤上裝載到內(nèi)存并執(zhí)行嵌入在html編寫的web頁面中由游覽器內(nèi)含的java解釋器解釋運(yùn)行 將遠(yuǎn)程服務(wù)器

5、上的applet下載到本地機(jī)器上后再運(yùn)行hyper text mark language超文本標(biāo)記語言 1.2 java語言基礎(chǔ) 項(xiàng)目2 判斷一個(gè)數(shù)是否是回文數(shù)1分隔符分隔符 n注釋n非執(zhí)行語句n提高程序的可讀性njava程序有兩類注釋:n實(shí)現(xiàn)注釋(implementation comments):注釋代碼或者實(shí)現(xiàn)細(xì)節(jié)n行注釋:/注釋內(nèi)容n多行注釋:/* 注釋內(nèi)容 */n文檔注釋(document comments):描述java的類、接口、構(gòu)造器,方法,以及字段(field) n/*注釋內(nèi)容 */ 一個(gè)注釋對(duì)應(yīng)一個(gè)類、接口或成員 1.2 java語言基礎(chǔ)項(xiàng)目2 判斷一個(gè)數(shù)是否是回文數(shù)1分隔符

6、分隔符n空白符n空格符、回車符、換行符和制表符等n多個(gè)空白符與一個(gè)空白符的作用相同n普通分隔符:具有確定的語法含義n花括號(hào)“”,用于復(fù)合語句和數(shù)組的初始化以及定義類、方法等;n分號(hào)“;”,用于語句結(jié)束;n逗號(hào)“,”,用于在變量說明時(shí)分隔各個(gè)變量和方法中各個(gè)參數(shù);n冒號(hào)“:”,用于分隔標(biāo)號(hào)和語句。項(xiàng)目2 判斷一個(gè)數(shù)是否是回文數(shù)2關(guān)鍵字和標(biāo)識(shí)符關(guān)鍵字和標(biāo)識(shí)符abstractbooleanbreakbytecasecatchcharclassconst *continuedefaultdodoubleelseextendsfalsefinalfinallyfloatforgoto *ifimplem

7、entsimportinstanceofintinterfacelongnativenewnullpackageprivateprotectedpublicreturnshortstaticsuperswitchsynchronizedthisthrowthrowstransient truetryvoidvolatilewhilen關(guān)鍵字:又稱保留字,是java語言本身使用的標(biāo)識(shí)符,有特定的語法含義 項(xiàng)目2 判斷一個(gè)數(shù)是否是回文數(shù)2關(guān)鍵字和標(biāo)識(shí)符關(guān)鍵字和標(biāo)識(shí)符n標(biāo)識(shí)符n以字母、下劃線“_”、美元符“$”開始n后面跟字母、下劃線、美元符和數(shù)字n區(qū)分大小寫 n關(guān)鍵字不能用來做標(biāo)識(shí)符,n見名知意n

8、約定n類名nstudent stringbuffer urln方法名ngetstudentname( )項(xiàng)目2 判斷一個(gè)數(shù)是否是回文數(shù)3. 數(shù)據(jù)類型數(shù)據(jù)類型n簡單數(shù)據(jù)類型n整數(shù)類型:byte,short,int,longn實(shí)數(shù)類型:float,doublen字符類型:charn布爾類型:booleann復(fù)合數(shù)據(jù)類型包括:n數(shù)組n類:classn接口:interface精度越精度越來越高來越高項(xiàng)目2 判斷一個(gè)數(shù)是否是回文數(shù)4 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式n運(yùn)算符 算術(shù)運(yùn)算符:+ - + - * / % 關(guān)系運(yùn)算符: = = != 邏輯運(yùn)算符:! & | 位運(yùn)算符: & | 賦值運(yùn)

9、算符:= += -= *= /= %= &= |= = = = 條件運(yùn)算符:?: 分量運(yùn)算符: . 下標(biāo)運(yùn)算符: 實(shí)例運(yùn)算符: instanceof 方法調(diào)用運(yùn)算符: () 內(nèi)存分配運(yùn)算符: new 強(qiáng)制類型運(yùn)算符:(類型) 項(xiàng)目2 判斷一個(gè)數(shù)是否是回文數(shù)4 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式n表達(dá)式n由操作數(shù)和運(yùn)算符按一定的語法形式組成的符號(hào)序列。n表達(dá)式的值:運(yùn)算后產(chǎn)生的確定的值。n表達(dá)式的類型:表達(dá)式的值的類型。n常量或變量是最簡單的表達(dá)式,其值即該常量或變量的值。n表達(dá)式的運(yùn)算按照運(yùn)算符的優(yōu)先級(jí)順序從高到低進(jìn)行。n不同的類型的數(shù)據(jù)進(jìn)行混合運(yùn)算時(shí):java會(huì)將不同的類型的數(shù)據(jù)轉(zhuǎn)換成相同

10、的類型,再進(jìn)行運(yùn)算 項(xiàng)目2 判斷一個(gè)數(shù)是否是回文數(shù)4 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式自動(dòng)類型轉(zhuǎn)換自動(dòng)類型轉(zhuǎn)換 強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換 占用內(nèi)存較少占用內(nèi)存較少 短數(shù)據(jù)類型短數(shù)據(jù)類型 (低精度)(低精度)占用內(nèi)存較多占用內(nèi)存較多 長數(shù)據(jù)類型長數(shù)據(jù)類型 (高精度)(高精度)int i=10;char j=(char)i;int i=10;long j=10,k=i+j;javajava的方法的方法 項(xiàng)目2 判斷一個(gè)數(shù)是否是回文數(shù)4 運(yùn)算符和表達(dá)式運(yùn)算符和表達(dá)式n數(shù)字轉(zhuǎn)換成字符串 double.tostring(double)float.tostring(float) long.tostring(l

11、ong) integer.tostring(integer) short.tostring(short) byte.tostring(byte)n字符轉(zhuǎn)換成數(shù)字double.parsedouble(string) float.parsefloat(string) long.parselong(string) integer.parseinteger(string) short.parseshort(string) byte.parsebyte(string) 項(xiàng)目2 判斷一個(gè)數(shù)是否是回文數(shù)5 語句語句n方法調(diào)用語句 n表達(dá)式 a=b+c;n復(fù)合語句:用括起來的多條語句 if(ab) a=1;b

12、=0;n流程控制語句:選擇結(jié)構(gòu)語句和循環(huán)控制結(jié)構(gòu)語句 npackage語句和import語句 npackage聲明包語句n必須作為java中的第一條可執(zhí)行語句npackage 包名;n如果源程序中省略了package語句,源程序所定義命名的類被隱含地認(rèn)為是無名包的一部分,即源程序中定義命名的類在同一包中 njava包是由.class文件組成的一個(gè)集合 項(xiàng)目2 判斷一個(gè)數(shù)是否是回文數(shù)5 語句語句nimport語句引入包n實(shí)現(xiàn)了在編譯單元中使用外部類和接口的機(jī)制nimport語句只指明要用到的類所在的位置,以便能在用到時(shí)可以加載n必須寫在package語句和源程序其它語句之間njava包含了130

13、多個(gè)包,如:njava.lang:java語言核心包,包含所有的基本語言類,這個(gè)包由編譯器自動(dòng)引入。njava.applet:包含所有實(shí)現(xiàn)小程序的類。njava.awt:包含抽象窗口工具集中的圖形、文本、窗口gui類。njava.io:包含所有的輸入輸出類。:包含所有實(shí)現(xiàn)網(wǎng)絡(luò)功能的類。njava.util:包含有用的數(shù)據(jù)類型類。項(xiàng)目2 判斷一個(gè)數(shù)是否是回文數(shù)6 6選擇控制語句選擇控制語句n(1)if-else語句 if(條件表達(dá)式) 語句組1; else 語句組2; (2)switch語句nswitch(表達(dá)式)case 值1:語句1; break;case 值2:語句2;break;case

14、 值n:語句n;break;default:語句;nswitch語句nswitch提供了一個(gè)多路分支n是一個(gè)特殊的if- -else if結(jié)構(gòu)n只允許比較一個(gè)元素nswitch中表達(dá)式類型只能是:char,byte,int,shortncase后面的值應(yīng)該是常量,各case子句中的值應(yīng)是不相同的。n每一個(gè)case結(jié)尾的break:使解釋器退出switch語句體n如果沒有break語句,switch語句會(huì)從表達(dá)式求出的值相同的case標(biāo)簽開始執(zhí)行,直到switch語句體結(jié)束為止n一般使用break語句,但return與throw也有相同的功能。項(xiàng)目2 判斷一個(gè)數(shù)是否是回文數(shù)6選擇控制語句選擇控制

15、語句項(xiàng)目項(xiàng)目3 3 求素?cái)?shù)求素?cái)?shù)1.1.循環(huán)控制語句循環(huán)控制語句 nfor語句nfor(表達(dá)式1;表達(dá)式2;表達(dá)式3) 循環(huán)體 n先執(zhí)行表達(dá)式1進(jìn)行初始化操作,然后計(jì)算機(jī)表達(dá)式2的值,表達(dá)式2的值必須是邏輯值,為真執(zhí)行循環(huán)體,再計(jì)算表達(dá)式3的值,然后再判斷表達(dá)式2的值,如此循環(huán)反復(fù),直至表達(dá)式2的值為假跳出循環(huán)。n表達(dá)式1、表達(dá)式2和表達(dá)式3都可以省略,但里面的兩個(gè)分號(hào)不能省略。nfor語句一般用于循環(huán)次數(shù)確定的情況。項(xiàng)目項(xiàng)目3 3 求素?cái)?shù)求素?cái)?shù)1.1.循環(huán)控制語句循環(huán)控制語句nwhile語句nwhile(條件表達(dá)式) 循環(huán)體 n先判斷條件是否為真,如果為真就進(jìn)入循環(huán),如果為假可能一次循環(huán)也不

16、執(zhí)行 ndo-while語句 do 循環(huán)體 while(條件表達(dá)式);n先執(zhí)行循環(huán)體語句再進(jìn)行判斷,所以至少要執(zhí)行一次循環(huán)項(xiàng)目項(xiàng)目3 3 求素?cái)?shù)求素?cái)?shù)2 2breakbreak、continuecontinue和和returnreturnnbreak語句可用于switch多路分支語句和循環(huán)語句中,其作用是跳出switch或強(qiáng)行結(jié)束循環(huán)。ncontinue語句只能用于循環(huán)語句中,其作用是結(jié)束本輪循環(huán)開始下一輪循環(huán)。nreturn語句:return 表達(dá)式;nreturn結(jié)束方法的調(diào)用,并返回一個(gè)確定的值n在一個(gè)方法中可以有多個(gè)return語句,但每次調(diào)用只可能有一個(gè)return語句被執(zhí)行。n嵌套

17、調(diào)用:在一個(gè)方法的調(diào)用中,該方法的實(shí)現(xiàn)部分又調(diào)用了另外的方法。n遞歸調(diào)用:在一個(gè)方法中如果有調(diào)用該方法自身的情況時(shí)稱為遞歸調(diào)用。n將一個(gè)復(fù)雜的問題化簡成解決方法相同但稍微簡單的問題,即所謂“遞”。n問題化到最簡時(shí),再逆向回代,求出結(jié)果,即所謂“歸”。n遞歸設(shè)計(jì)兩個(gè)要素:1確定遞歸步驟,將要求解的原問題分解為一個(gè)或多個(gè)與原問題性質(zhì)相同但規(guī)模較小解決方法與原問題相同的子問題,使子問題越來越簡單,越來越接近終止條件,以保證經(jīng)過有限次遞歸步驟后子問題能達(dá)到遞歸出口。2確定遞歸出口,找出一個(gè)或多個(gè)無須分須再分解、可直接示解的最小子問題(遞歸終止條件)。項(xiàng)目項(xiàng)目4 4 隨機(jī)生成學(xué)生數(shù)據(jù)并顯示最低學(xué)生信息隨

18、機(jī)生成學(xué)生數(shù)據(jù)并顯示最低學(xué)生信息1 1數(shù)組定義與使用數(shù)組定義與使用n數(shù)組是java語言中的一種復(fù)合數(shù)據(jù)類型n是通過下標(biāo)定位的同類型數(shù)據(jù)的集合n一個(gè)數(shù)組中每個(gè)元素的數(shù)據(jù)類型相同n基本類型n對(duì)象類型n數(shù)組類型n數(shù)組要經(jīng)過聲明、分配內(nèi)存及賦值后才能使用 (1) 數(shù)組聲明語法:n數(shù)組元素類型 數(shù)組名;n數(shù)組元素類型 數(shù)組名;n數(shù)組元素類型 數(shù)組名;n數(shù)組元素類型 數(shù)組名;(2) 數(shù)組分配內(nèi)存n數(shù)組名=new 數(shù)組元素類型數(shù)組元素個(gè)數(shù);(3)數(shù)組元素初始化n數(shù)組元素的類型是基本類型:可略n數(shù)組元素的類型是對(duì)象類型:必須調(diào)用類的構(gòu)造方法來初始化 (4)數(shù)組元素的引用:下標(biāo)n下標(biāo)從0開始,一個(gè)長度為n的數(shù)組

19、,其下標(biāo)范圍是0n-1n下標(biāo)必須是整形的值,短整型、字節(jié)型和字符型的值也可以作為數(shù)組的下標(biāo)n越界檢查 int score ;char a ; score=new int2;a=new char23;score =1,2;a =1,2,3,4,5,6;項(xiàng)目項(xiàng)目4 4 隨機(jī)生成學(xué)生數(shù)據(jù)并顯示最低學(xué)生信息隨機(jī)生成學(xué)生數(shù)據(jù)并顯示最低學(xué)生信息2 2mathmath類類nmath類是一個(gè)最終類,它包含了常用的科學(xué)計(jì)算方法,這些方法都是靜態(tài)方法(類方法),可以通過類名直接調(diào)用。nstatic final double cos(double a):余弦函數(shù)nstatic final double sin(do

20、uble a):正弦函數(shù)nstatic final double exp(double a):以e為底的指數(shù)nstatic final double log(double a):以e為底的對(duì)數(shù)函數(shù)nstatic final double sqrt(double a):平方根函數(shù)nstatic final double random():隨機(jī)函數(shù),返回0.0至1.0之間的值123mm-1s每隔n個(gè)出列每隔n個(gè)出列如此循環(huán),直到最后剩下1個(gè)大王項(xiàng)目5 約瑟夫問題圖解項(xiàng)目項(xiàng)目5 5 約瑟夫問題約瑟夫問題1 1stringstring類類nstring類用于表示java中的字符串常量n字符串一旦被創(chuàng)建

21、,其值就不能再被改變n用雙引號(hào)引起來的一系列字符 n構(gòu)造方法常用的有:nstring ():新建一個(gè)空字符串對(duì)象,字符串長度為0。nstring (string original):用一個(gè)已經(jīng)存在的字符串常量創(chuàng)建一個(gè)新string對(duì)象,該對(duì)象內(nèi)容與給出的字符串一致。nstring (char value):用指定字符數(shù)組value來創(chuàng)建一個(gè)字符串對(duì)象,字符串對(duì)象中的內(nèi)容為字符數(shù)組中的內(nèi)容。nstring (stringbuffer buffer):利用一個(gè)已經(jīng)存在的stringbuffer對(duì)象來創(chuàng)建一個(gè)新的string對(duì)象。 訪問字符串方法nint length():獲得當(dāng)前字符串中的字符個(gè)數(shù)

22、。nchar charat(int index):獲取字符串指定index位置上的字符。nstring substring(int beginindex):獲得從指定處開始到最后的子串。nstring substring(int beginindex,int endindex):獲得指定范圍內(nèi)的子串。nvoid getchars(int srcbegin,int srcend,char dst,int dstbegin):將一個(gè)字符串從srcbegin到srcend位置子串復(fù)制到數(shù)組dst中。nint indexof(int ch):查找給定的字符ch在字符串中第一次出現(xiàn)的位置。如果找不到返回

23、-1。nint lastindexof(int ch):查找給定的字符ch在字符串中最后一次出現(xiàn)的位置。如果找不到返回-1。nint indexof(string str):查找給定的字符串str在字符串中第一次出現(xiàn)的位置。如果找不到返回-1。nint lastindexof(string str):查找給定的字符串str在字符串中最后一次出現(xiàn)的位置。如果找不到返回-1。項(xiàng)目項(xiàng)目5 5 約瑟夫問題約瑟夫問題1 1stringstring類類n修改字符串方法nstring contact(string str):將當(dāng)前字符串對(duì)象與給定的字符串str連接起來。nstring replace(cha

24、r oldchar,char newchar):把字符串出現(xiàn)的所有oldchar字符全部用newchar替換。nstring touppercase():將字符串內(nèi)的所有字符改為大寫。nstring tolowercase():將字符串內(nèi)的所有字符改為小寫。其它方法nboolean equals(string s):將當(dāng)前字符串與指定的s進(jìn)行比較,如果長度和內(nèi)容完全一致就返回true,否則返回false。nboolean equalsignorecase(string s):將當(dāng)前字符串與指定的s忽略大小寫比較。nint compareto(string str):將當(dāng)前字符串與指定的str按

25、字典順序比較大小,相等返回0,如果該字符串按字典順序小于參數(shù)字符串把返回值小于0,否則大于0。nint comparetoignorecase (string str):將當(dāng)前字符串與指定的str按字典順序忽略大小寫進(jìn)行比較。與運(yùn)算符與運(yùn)算符“=”的比較不同的比較不同“=”比較兩個(gè)對(duì)象是否引用同一個(gè)實(shí)比較兩個(gè)對(duì)象是否引用同一個(gè)實(shí)例例equals()和和equalsignorecase()比較兩個(gè)比較兩個(gè)字符串對(duì)應(yīng)的每個(gè)字符值是否相同字符串對(duì)應(yīng)的每個(gè)字符值是否相同 項(xiàng)目項(xiàng)目5 5 約瑟夫問題約瑟夫問題1 1stringstring類類項(xiàng)目項(xiàng)目5 5 約瑟夫問題約瑟夫問題2 2stringbuff

26、erstringbuffer類類(1)構(gòu)造方法nstringbuffer():創(chuàng)建一個(gè)不包含字符且初始容量為16個(gè)字符的stringbuffer對(duì)象。nstringbuffer(int capacity):創(chuàng)建一個(gè)不包含字符且初始容量為capacity的stringbuffer對(duì)象。nstringbuffer(string str):創(chuàng)建一個(gè)stringbuffer對(duì)象,該對(duì)象包含str字符串。(2)訪問字符串方法nint length():返回stringbuffer對(duì)象當(dāng)前的字符個(gè)數(shù)。nint capacity():不需要另外分配內(nèi)存的情況下,stringbuffer對(duì)象可以存儲(chǔ)的字符個(gè)數(shù)

27、。nvoid ensurecapacity(int mincapacity):允許指定stringbuffer對(duì)象的最小容量。nvoid setlength(int newlength):允許指定stringbuffer對(duì)象可以增加或減少的容量。nchar charat(int index):返回stringbuffer對(duì)象中指定位置index上的字符。(3)修改字符串方法nvoid setcharat(int index,char ch):將stringbuffer對(duì)象中指定位置index上的字符設(shè)置為ch。nstringbuffer append(string str):在已有字符串末尾添

28、加字符串str。nstringbuffer insert(int offset,string str):在指定位置處插入str。 1.3 1.3 面向?qū)ο竺嫦驅(qū)ο骿avajava njava是一種純面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,類和對(duì)象是它的核心和本質(zhì)n類實(shí)際上是定義了一種新數(shù)據(jù)類型n對(duì)象是類的實(shí)例化 n屬性:類的共同特征、特性n值:屬性的值n方法:對(duì)象的動(dòng)作,用于操作屬性的值人類人類屬性:姓名、屬性:姓名、性別性別、職業(yè)職業(yè)方法:吃飯方法:吃飯李白李白男男詩人詩人章子怡章子怡女女演員演員奧巴馬奧巴馬男男美國總統(tǒng)美國總統(tǒng)項(xiàng)目項(xiàng)目6 職員類職員類employee1 面向?qū)ο蟮娜筇卣髅嫦驅(qū)ο蟮娜筇卣?/p>

29、(1)繼承(inheritance)n指新的類可以獲得已有類(稱為基類或父類)的屬性和行為,稱新類為已有類的派生類(或子類)。n有助于解決軟件的可重用性問題n程序結(jié)構(gòu)清晰n降低了編碼和維護(hù)的工作量(2)封裝(encapsulation)n信息隱蔽技術(shù)n利用抽象數(shù)據(jù)類型將數(shù)據(jù)和基于數(shù)據(jù)的操作封裝在一起n將對(duì)象的使用者和設(shè)計(jì)者分開n使用者不必知道行為實(shí)現(xiàn)的細(xì)節(jié),只須使用設(shè)計(jì)者的提供的消息來訪問對(duì)象。n封裝的定義:n清楚的邊界,所有對(duì)象的內(nèi)部信息被限定在這個(gè)邊界內(nèi);n接口即對(duì)象向外界提供的方法,外界可以通過這些方法與對(duì)象進(jìn)行交互;n受保護(hù)的內(nèi)部實(shí)現(xiàn),即軟件對(duì)象功能的實(shí)現(xiàn)細(xì)節(jié)不能從類外訪問。njava

30、語言通過類來實(shí)現(xiàn)封裝(3)多態(tài)(polymorphism)n一棵繼承樹中的類中可以有多個(gè)同名但不同方法體以及不同形參的方法。n靜態(tài)多態(tài)(編譯時(shí)多態(tài)) :在編譯階段,具體調(diào)用哪個(gè)被重載的方法編譯器會(huì)根據(jù)參數(shù)的不同來表態(tài)確實(shí)調(diào)用相應(yīng)的方法。n方法重載n動(dòng)態(tài)多態(tài)(運(yùn)行時(shí)多態(tài)) :由于派生類繼承了基類所有的屬性(私有的除外),所以派生類對(duì)象可以作為基類對(duì)象使用。程序中凡是使用基類對(duì)象中的地方,都可以用派生類對(duì)象來代替。一個(gè)對(duì)象可以通過引用派生類的實(shí)例來調(diào)用派生類的方法。n方法重寫(1)定義語法n修飾符 class 類名 extends 父類名implements 接口名列表聲明成員變量;聲明成員方法;

31、n一般類只有兩種訪問權(quán)限npublic(公共):可以在不同的包中引用n默認(rèn)(友好):只能在同一個(gè)包中引用n內(nèi)部類:一個(gè)類可以定義在另一個(gè)類的內(nèi)部n內(nèi)部類可以有private 和protected權(quán)限。public(公共)private(私有)protected(保護(hù))abstract(抽象)final(最終類)npublic、protected、privatenfinal(方法不能重寫)nstatic(靜態(tài))nnative (集成其它語言代碼)nsynchronizedn(同步,控制多個(gè)線程并發(fā)訪問)public、protected、privatefinal(常量)、static(靜態(tài))tra

32、nsient(暫時(shí),用于對(duì)象存檔)volatile(易變,用于并發(fā)線程共享) (2)類成員的訪問權(quán)限npublic:在所有包內(nèi)可見nprotected:在同一個(gè)包內(nèi)及其子類(不同包)n缺?。涸谕鼉?nèi)可見nprivate protected:在本類及基子類可見nprivate:僅在本類內(nèi)可見(3)對(duì)象的定義及使用n對(duì)象的定義包括聲明、實(shí)例化和初始化n類名 對(duì)象名=new 類名(參數(shù)列表);n通過運(yùn)算符“.”可以實(shí)現(xiàn)對(duì)成員變量的訪問和成員方法的調(diào)用。n對(duì)象名.變量名;n對(duì)象名.方法名;n注意:如果成員變量和成員方法使用static修飾,它們成為靜態(tài)成員也稱類成員。n靜態(tài)成員存儲(chǔ)于類的存儲(chǔ)區(qū),屬于整

33、個(gè)類而不屬于一個(gè)具體的類對(duì)象。n同一個(gè)類的所有對(duì)象所訪問的靜態(tài)成員都是同一個(gè)n靜態(tài)方法只能處理靜態(tài)變量。調(diào)用靜態(tài)成員語法是:n類名.靜態(tài)變量名;n類名.靜態(tài)方法; null null 、thisthis與與super super njava系統(tǒng)默認(rèn),每個(gè)類都缺省地具有null 、this與super三個(gè)屬性,在任意類中都可以不加說明而直接使用它們。nnull表示“空”,代表一個(gè)什么也沒有的“空”值。在聲明一個(gè)對(duì)象但尚未為其開辟內(nèi)存單元時(shí)可以指定這個(gè)對(duì)象為null。nthis表示當(dāng)前對(duì)象本身,代表了當(dāng)前對(duì)象的一個(gè)引用。n對(duì)象的引用:對(duì)象的另一個(gè)名字n通過引用可以順利地訪問到對(duì)象,包括訪問、修改對(duì)

34、象的屬性、調(diào)用對(duì)象的方法。nsuper表示的是當(dāng)前對(duì)象的直接基類,是當(dāng)前對(duì)象的直接基類的引用。super的使用有三種情況:n訪問基類被隱藏的成員變量:super .variable;n調(diào)用基類中被重寫的方法: super.method(paramlist);n調(diào)用基類的構(gòu)造函數(shù):super(paramlist);n注意:super和this不能用于靜態(tài)方法中 nmain()方法中,不能使用super和this 項(xiàng)目項(xiàng)目7 7 一個(gè)簡單的實(shí)現(xiàn)繼承的程序一個(gè)簡單的實(shí)現(xiàn)繼承的程序1 1構(gòu)造方法構(gòu)造方法n構(gòu)造方法的作用是為類的成員屬性賦初值n構(gòu)造方法名與類名相同;n構(gòu)造方法不返回任何值,也沒有返回類型

35、,即使是void也不行;n每一個(gè)類可以顯式定義零個(gè)或多個(gè)構(gòu)造方法,如果沒有顯式定義構(gòu)造方法,java會(huì)自動(dòng)提供一個(gè)無參構(gòu)造方法,為類的成員屬性賦數(shù)據(jù)類型默認(rèn)值;n 構(gòu)造方法在創(chuàng)建對(duì)象時(shí)自動(dòng)執(zhí)行,一般不能顯式地直接調(diào)用。 n構(gòu)造方法的繼承遵循如下的原則:構(gòu)造方法的繼承遵循如下的原則:n若父類是無參數(shù)的構(gòu)造方法,則子類無條件地繼承該構(gòu)造方法。n 若子類無自己的構(gòu)造方法,則它將繼承父類的無參構(gòu)造方法作為自己的構(gòu)造方法:n若子類有自己的構(gòu)造方法,則在創(chuàng)建子類對(duì)象時(shí),它將先執(zhí)行繼承自父類的無參構(gòu)造方法,然后再執(zhí)行自己的構(gòu)造方法。n若父類是有參數(shù)的構(gòu)造方法,子類可以通過在自己的構(gòu)造方法中使用super關(guān)鍵

36、字來調(diào)用它,但這個(gè)調(diào)用語句必須是子類構(gòu)造方法的第1個(gè)可執(zhí)行語句。 項(xiàng)目項(xiàng)目7 一個(gè)簡單的實(shí)現(xiàn)繼承的程序一個(gè)簡單的實(shí)現(xiàn)繼承的程序1構(gòu)造方法構(gòu)造方法項(xiàng)目項(xiàng)目7 一個(gè)簡單的實(shí)現(xiàn)繼承的程序一個(gè)簡單的實(shí)現(xiàn)繼承的程序2 2繼承繼承n子類不能繼承父類中訪問權(quán)限為private的成員屬性和方法。 n在java語言中只允許單繼承,n每一個(gè)類只能有一個(gè)父類n一個(gè)類允許同時(shí)擁有多個(gè)子類n父類:是所有子類的公共成員屬性和公共成員方法的集合n子類:是父類的特殊化,是對(duì)公共成員屬性和成員方法的功能、內(nèi)涵方面的擴(kuò)展和延伸。n單繼承形成了一棵繼承樹 n類的繼承具有傳遞性,即子類繼承父類的所有非私有成員,也繼承父類的父類類直至

37、祖先的所有非私有成員。 車汽車機(jī)動(dòng)車非機(jī)動(dòng)車交通工具 有輪子帶動(dòng)力驅(qū)動(dòng)的車不帶動(dòng)力驅(qū)動(dòng)的車兩輪非機(jī)動(dòng)車三輪非機(jī)動(dòng)車能灑水的汽車帶滅火工具的汽車帶醫(yī)療工具的汽車?yán)^承舉例 圖解父親的玉super.父類成員繼承繼承class a int i=1,j=2;class b extends a int j=3; 打印i;/父親的i 打印j;/兒子的j 打印super.j;/父親的j項(xiàng)目8 隊(duì)列圖解在隊(duì)頭出隊(duì)列在隊(duì)尾進(jìn)隊(duì)列項(xiàng)目項(xiàng)目8 一個(gè)數(shù)字隊(duì)列實(shí)現(xiàn)程序一個(gè)數(shù)字隊(duì)列實(shí)現(xiàn)程序1. 接口接口n是若干完成某一特定功能的沒有方法體的方法(抽象方法)和常量的集合n只指定類必須做什么,而不是如何做n了解對(duì)象的交互界面,而無須了解對(duì)象所對(duì)應(yīng)的類;n指明多個(gè)類需要實(shí)現(xiàn)的方法;n實(shí)現(xiàn)不相關(guān)類的相同行為,而無須考慮這些類之間的關(guān)系。n接口的定義:接口聲明和接口體。publicinterface 接口名 extends 父接口名nextends:一個(gè)接口可有多個(gè)父接口,用逗號(hào)隔開,而一個(gè)類只有一個(gè)直接父類。n接口體包括常量的定義和方法的聲明。n接口的實(shí)現(xiàn)nimplements:一個(gè)類實(shí)現(xiàn)某個(gè)接口n在類體中可以使用接口中定義的常量n必須實(shí)現(xiàn)接口中定義的所有方法n一個(gè)類可以實(shí)現(xiàn)多個(gè)接口,在implements子句中用逗號(hào)隔開n接口類型的使用n引用類型n任何實(shí)現(xiàn)該接口的類

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論