Java程序設(shè)計(jì)項(xiàng)目化教程 課件全套 林勝青 項(xiàng)目1-8 認(rèn)識(shí)Java -圖形用戶界面處理_第1頁(yè)
Java程序設(shè)計(jì)項(xiàng)目化教程 課件全套 林勝青 項(xiàng)目1-8 認(rèn)識(shí)Java -圖形用戶界面處理_第2頁(yè)
Java程序設(shè)計(jì)項(xiàng)目化教程 課件全套 林勝青 項(xiàng)目1-8 認(rèn)識(shí)Java -圖形用戶界面處理_第3頁(yè)
Java程序設(shè)計(jì)項(xiàng)目化教程 課件全套 林勝青 項(xiàng)目1-8 認(rèn)識(shí)Java -圖形用戶界面處理_第4頁(yè)
Java程序設(shè)計(jì)項(xiàng)目化教程 課件全套 林勝青 項(xiàng)目1-8 認(rèn)識(shí)Java -圖形用戶界面處理_第5頁(yè)
已閱讀5頁(yè),還剩277頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

項(xiàng)目一

認(rèn)識(shí)Java講師:Java程序設(shè)計(jì)項(xiàng)目化教程授課教師:任務(wù)一Java的產(chǎn)生以及發(fā)展特點(diǎn)

任務(wù)二Java的開發(fā)工具與環(huán)境任務(wù)三Java程序的基本結(jié)構(gòu)項(xiàng)目小結(jié)思考與練習(xí)目錄Java的產(chǎn)生以及發(fā)展特點(diǎn)Part1Java的前世今生Java是由SunMicrosystems公司于1995年5月推出的Java程序設(shè)計(jì)語言(以下簡(jiǎn)稱Java語言)和Java平臺(tái)的總稱。用Java實(shí)現(xiàn)的HotJava瀏覽器(支持Javaapplet)顯示了Java的魅力:跨平臺(tái)、動(dòng)態(tài)的Web、Internet計(jì)算。從此,Java被廣泛接受并推動(dòng)了Web的迅速發(fā)展,常用的瀏覽器現(xiàn)在均支持Javaapplet。另一方面,Java技術(shù)也不斷更新。

Java編程的關(guān)鍵概念面向?qū)ο蠓植际胶?jiǎn)單化多線程安全平臺(tái)獨(dú)立性5過程化編程著重于順序。6過程化編程7面向?qū)ο?分布式使用引用代替內(nèi)存指針。boolean數(shù)據(jù)類型有true或false值。自動(dòng)管理內(nèi)存。9簡(jiǎn)單化10多線程11安全12依賴于平臺(tái)的程序13依賴于平臺(tái)的程序14依賴于平臺(tái)的程序Java的開發(fā)工具與環(huán)境Part2Java應(yīng)用程序1617開發(fā)與運(yùn)行環(huán)境18JRE=JVM+JavaSE標(biāo)準(zhǔn)類庫(kù)JDK=JRE+開發(fā)工具集(例如Javac編譯工具等)開發(fā)與運(yùn)行環(huán)境Step1:JDK安裝(注:Oracle官網(wǎng)根據(jù)操作系統(tǒng)版本下載)Java環(huán)境變量配置Step2:打開我的電腦--屬性--高級(jí)--環(huán)境變量Java環(huán)境變量配置Step3:新建系統(tǒng)變量JAVA_HOME和CLASSPATH

變量名:JAVA_HOME

變量值:C:\ProgramFiles\Java\jdk1.7.0

變量名:CLASSPATH

變量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

其中變量值為你自己安裝jdk的文件目錄這里要注意。Java環(huán)境變量配置Step4:選擇“系統(tǒng)變量”中變量名為“Path”的環(huán)境變量,雙擊該變量,把JDK安裝路徑中bin目錄的絕對(duì)路徑,添加到Path變量的值中,并使用半角的分號(hào)和已有的路徑進(jìn)行分隔。

變量名:Path

變量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

這是java的環(huán)境配置,配置完成后直接啟動(dòng)eclipse,它會(huì)自動(dòng)完成java環(huán)境的配置Java環(huán)境變量配置Step5:現(xiàn)在測(cè)試環(huán)境變量的配置成功與否。在DOS命令行窗口輸入“javac”,輸出幫助信息即為配置正確。如圖:Java環(huán)境變量配置打開記事本,編寫HelloWorld.java第一個(gè)程序HelloWorld【查看】講義HelloWorld.javajavacHelloWorld.java第一個(gè)程序HelloWorldjavaHelloWorld第一個(gè)程序HelloWorld

1/Eclipse的簡(jiǎn)介工欲善其事,必先利其器EclipseJava開發(fā)利器

1/Eclipse的簡(jiǎn)歷點(diǎn)擊此處添加標(biāo)題目前最新的版本Eclipse

Neon

1/Eclipse的界面介紹點(diǎn)擊此處添加標(biāo)題

1/Eclipse上第一個(gè)程序試一試

1/Eclipse的常用快捷鍵Alt+/

提供內(nèi)容的幫助記不全方法類屬性最常用Ctrl+/

為每行或者選擇部分添加注釋

調(diào)試有用Ctrl+D

刪除當(dāng)前行

最喜歡的快捷鍵之一Ctrl+Shift+R

快速查找資源

免得左邊找Ctrl+Q

快速定位到最后一個(gè)編輯的地方Ctrl+O

顯示類中方法屬性和大綱查找bug時(shí)非常有用(函數(shù)列表)Ctrl+F查找Alt+↓

當(dāng)前行和下一行相互交換位置Ctrl+Shift+P

定位到對(duì)于的匹配符(譬如{})Ctrl+Shift+F最常用

格式化某段代碼不選擇某段代碼則格式化化整個(gè)Java文件

1/Eclipse的常用快捷鍵研讀代碼經(jīng)常用的Ctrl+O

切換查看方法(當(dāng)前查找類成員)

Ctrl+T

看繼承關(guān)系重構(gòu)最常用的快捷鍵:

Alt+Shift+R

重命名(是變量和類的Rename,比手工方法能節(jié)省很多勞動(dòng)力)

Alt+Shift+M抽取方法(重構(gòu)里面最常用的方法之一,尤其是對(duì)一大堆泥團(tuán)代碼有用)Java程序的基本結(jié)構(gòu)Part3

3/程序的流程控制>>

順序結(jié)構(gòu)

循環(huán)結(jié)構(gòu)

選擇結(jié)構(gòu)

3/程序的流程控制順序結(jié)構(gòu)分支語句if語句switch語句if語句語法 if(<布爾表達(dá)式>) <語句或語句塊>例如:if(x<10)System.out.println("Areyoufinishedyet?");推薦寫法if(x<10){System.out.println("Areyoufinishedyet?");}if-else語句語法if(<布爾表達(dá)式>) <語句或語句塊>else <語句或語句塊>例如:if(x<10){System.out.println("Areyoufinishedyet?");}else{System.out.println("Keepworking...");}復(fù)雜的if-else語句如果需要進(jìn)行一系列的條件檢查,可以用一連串的if-else-ifif(<布爾表達(dá)式>) <語句或語句塊>elseif(<布爾表達(dá)式>) <語句或語句塊>else <語句或語句塊>例如:intcount=getCount();//類中定義的方法if(count<0){System.out.println("Error:countvalueisnegative.");}elseif(count>getMaxCount()){System.out.println("Error:countvalueistoobig.");}else{System.out.println("Therewillbe"+count+"peopleforlunchtoday.");}分支語句如果需要進(jìn)行一系列的條件檢查,可以用一連串的if-else-ifif(<布爾表達(dá)式>) <語句或語句塊>elseif(<布爾表達(dá)式>) <語句或語句塊>else <語句或語句塊>例如:intcount=getCount();//類中定義的方法if(count<0){System.out.println("Error:countvalueisnegative.");}elseif(count>getMaxCount()){System.out.println("Error:countvalueistoobig.");}else{System.out.println("Therewillbe"+count+"peopleforlunchtoday.");}switch語句常規(guī)的switch語句示例:switch(carModel){case‘D’://DeluxeaddAirConditioning();addRadio();addWheels();addEngine();break;case‘S’://StandardaddRadio();addWheels();addEngine();break;default:addWheels();addEngine();}switch語句switch語句中的break語句可以省略,但這會(huì)導(dǎo)致在執(zhí)行了相應(yīng)的case語句塊后,將繼續(xù)執(zhí)行其后緊鄰的語句塊。例如:switch(carModel){case‘D’://DeluxeaddAirConditioning();//向下通過case‘S’://StandardaddRadio();//向下通過default:addWheels();addEngine();}項(xiàng)目二Java編程基礎(chǔ)講師:Java程序設(shè)計(jì)項(xiàng)目化教程授課教師:任務(wù)一

標(biāo)識(shí)符與關(guān)鍵字

任務(wù)二

數(shù)據(jù)類型任務(wù)三

變量和常量任務(wù)四

運(yùn)算符與表達(dá)式任務(wù)五

流程控制語句任務(wù)六Java程序的注釋用法項(xiàng)目小結(jié)思考與練習(xí)目錄標(biāo)識(shí)符與關(guān)鍵字Part1Java標(biāo)識(shí)符Java標(biāo)識(shí)符是Java語言中用于命名變量、常量、函數(shù)、語句塊的字符序列,由SunMicrosystems公司于1995年5月推出的Java語言規(guī)范定義。Java標(biāo)識(shí)符由字母、數(shù)字、下劃線、美元符號(hào)組成,首字符不能為數(shù)字且區(qū)分大小寫,禁止使用Java關(guān)鍵字。命名規(guī)范要求類與接口名采用首字母大寫的駝峰式命名,方法名首字母小寫,常量名全大寫并用下劃線分隔,變量名需見名知義。這些規(guī)則保障了代碼的可讀性和規(guī)范性。

Java關(guān)鍵字Java關(guān)鍵字是電腦語言里事先定義的,有特別意義的標(biāo)識(shí)符,有時(shí)又叫保留字,還有特別意義的變量。Java的關(guān)鍵字對(duì)Java的編譯器有特殊的意義,他們用來表示一種數(shù)據(jù)類型,或者表示程序的結(jié)構(gòu)等,關(guān)鍵字不能用作變量名、方法名、類名、包名和參數(shù)。

Java關(guān)鍵字?jǐn)?shù)據(jù)類型Part2

2/Java的變量類型數(shù)據(jù)類型基本數(shù)據(jù)類型引用數(shù)據(jù)類型數(shù)值型字符型(char)布爾型(boolean)整數(shù)類型(byte,short,int,long)浮點(diǎn)類型(float,double)類(class)接口(interface)數(shù)組整型默認(rèn):int浮點(diǎn)型默認(rèn):double

2/Java基本數(shù)據(jù)類型

2/Java的變量類型布爾型(boolean)通常用于邏輯運(yùn)算和程序流程控制。該類型的值只能是true或false,表示真或假。不可以使用0或非0的整數(shù)來代替false和true,區(qū)分于C語言。

2/Java的變量類型整數(shù)類型(byte、short、int、long)整型常量的四種表示形式:二進(jìn)制整數(shù),0b或0B開頭,如:inta=0B110;八進(jìn)制整數(shù),要求以0開頭,如inta=012;十進(jìn)制整數(shù),如:inta=17;十六進(jìn)制整數(shù),要求0X或0x開頭,如inta=0x12;Java語言的整型常量默認(rèn)是int型,聲明long型常量量后加上‘l’或‘L’:當(dāng)給整數(shù)變量選擇類型時(shí),得根據(jù)實(shí)際需求和性能來做選擇,如表示星期的取值是[1,7],那么選擇byte是明智的選擇,因?yàn)閎yte只占一個(gè)字節(jié),能節(jié)約內(nèi)存空間。。byteweekDay;

2/Java的變量類型浮點(diǎn)類型(float、double)double和float并不能表示一個(gè)精確的小數(shù)值;Java浮點(diǎn)類型常量有兩種表示方式:十進(jìn)制形式:例如:3.14,168.0,.618科學(xué)計(jì)數(shù)法形式:例如:3.14e2,3.14E2,1000E-2Java浮點(diǎn)型常量默認(rèn)是double,則要聲明一個(gè)常量為float型,則需在常量后加上f或F,double常量后面的D或d可省略,如:doublepi=3.14;//正確floatpi=3.14F;//必須加上f,才表示float類型的小數(shù)

2/Java的變量類型字符型(char)

char表示16位的Unicode字符,Java對(duì)字符采用Unicode字符編碼。Unicode收集了世界上所有語言文字中的字符,是一種跨平臺(tái)的編碼方式,Java的字符占兩個(gè)字節(jié),可以表示一個(gè)漢字,字符常量使用單引號(hào)‘’括起來。char常量有4種表示形式:直接表示ASCII碼表里的符號(hào)字符,格式如'◆'、'A','7';直接作為整數(shù)類型使用,但是數(shù)據(jù)范圍在[0,65535],格式如97,但是打印出來的值依然是ASCII碼表對(duì)于的值,如97打印出來是a。和

一樣,只不過表示的是16進(jìn)制的數(shù),格式如'\uX',X表示16進(jìn)制整數(shù);如:97的16進(jìn)制是61。那么‘\u0061’打印出來也是a。通過轉(zhuǎn)義字符表示特殊字符常量,格式如'\n';

2/Java的變量類型字符型(char)

2/Java的變量類型字符串(String)首先得說明,String不屬于基本數(shù)據(jù)類型;String是一個(gè)類,表示字符串(后面詳講);所謂字符串,就是一串字符,也就是0到多個(gè)字符連接在一起;字符串都得使用""

括起來的,連接字符串使用+;

2/Java的變量類型自動(dòng)類型轉(zhuǎn)換當(dāng)把小數(shù)據(jù)范圍類型的數(shù)值或變量賦給另一個(gè)大數(shù)據(jù)范圍類型變量,系統(tǒng)可以完成自動(dòng)類型轉(zhuǎn)型。這好比把可裝一斤水容器里的水倒進(jìn)可以裝兩斤水的容器里,是沒有一點(diǎn)問題的。boolean類型是不可以轉(zhuǎn)換為其他基本數(shù)據(jù)類型。整型,字符型,浮點(diǎn)型的數(shù)據(jù)在混合運(yùn)算中相互轉(zhuǎn)換,轉(zhuǎn)換時(shí)遵循以下原則:正方向:byte、short、char→int→long→float→double正方向,小類型到大類型的轉(zhuǎn)換會(huì)自動(dòng)完成,自動(dòng)類型轉(zhuǎn)換,我們也稱為“隱式類型轉(zhuǎn)換”。byte、short、char之間不會(huì)相互轉(zhuǎn)換,他們?cè)谟?jì)算時(shí)首先會(huì)轉(zhuǎn)換為int類型。

2/Java的變量類型強(qiáng)制類型轉(zhuǎn)換反方向:byte、short、char←int←long←float←double當(dāng)大數(shù)據(jù)范圍類型的數(shù)值或變量賦給另一個(gè)小范圍類型變量時(shí),此時(shí)系統(tǒng)不能自動(dòng)完成,需要加上強(qiáng)制轉(zhuǎn)換符,但這樣的操作可能造成精度的降低或溢出,所以使用時(shí)要格外注意。這就好比把可裝兩斤水容器里的水倒在可以裝一斤水的容器里,是可能造成水溢出的。強(qiáng)制類型轉(zhuǎn)換,也稱為“顯示類型轉(zhuǎn)換”,這種轉(zhuǎn)換可能造成溢出和精度損失。剛剛說了整數(shù)是默認(rèn)是int類型,比如5默認(rèn)就是int類型,bytec=5這是符合強(qiáng)轉(zhuǎn)類型轉(zhuǎn)換條件的,可為什么沒轉(zhuǎn)呢?若直接把一個(gè)較小的整數(shù)常量(byte,short范圍內(nèi))賦給一個(gè)byte或short變量,系統(tǒng)會(huì)自動(dòng)把這個(gè)整數(shù)當(dāng)做是byte或short類型,也就是存在隱式轉(zhuǎn)換。變量和常量Part3

2/內(nèi)存特點(diǎn)—變量1標(biāo)題數(shù)字等都可以通過點(diǎn)擊和重新輸入進(jìn)行更改,頂部“開始”面板中可以對(duì)字體、字號(hào)、顏色、行距等進(jìn)行修改。建議正文8-14號(hào)字,1.3倍字間距。TEXTHERE123456

2/Java的變量變量的概念:內(nèi)存中的一個(gè)存儲(chǔ)區(qū)域該區(qū)域有自己的名稱(變量名)和類型(數(shù)據(jù)類型)該區(qū)域的數(shù)據(jù)可以在同一類型范圍內(nèi)不斷變化為什么要定義變量: 用來不斷的存放同一類型的常量,并可以重復(fù)使用使用變量注意:變量的作用范圍(一對(duì){}之間有效) 初始化值定義變量的格式:數(shù)據(jù)類型變量名=初始化值;注:格式是固定的,記住格式,以不變應(yīng)萬變。

2/Java的常量java常量就是在程序中固定不變的值,是不能改變的數(shù)據(jù)。例如數(shù)字1、字符“a”、浮點(diǎn)數(shù)3.2等。在Java中,常量包括整型常量、浮點(diǎn)數(shù)常量、布爾常量、字符常量等。運(yùn)算符和表達(dá)式Part4

3/Java的運(yùn)算符運(yùn)算符是一種特殊符號(hào),用以表示數(shù)據(jù)的運(yùn)算、賦值和比較,運(yùn)算符共分以下幾種:算術(shù)運(yùn)算符賦值運(yùn)算符比較運(yùn)算符邏輯運(yùn)算符位運(yùn)算符

3/Java的運(yùn)算符操作符描述例子+加法-相加運(yùn)算符兩側(cè)的值A(chǔ)+B等于30-減法-左操作數(shù)減去右操作數(shù)A–B等于-10*乘法-相乘操作符兩側(cè)的值A(chǔ)*B等于200/除法-左操作數(shù)除以右操作數(shù)B/A等于2%取模-左操作數(shù)除右操作數(shù)的余數(shù)B%A等于0++自增:操作數(shù)的值增加1B++或++B等于21(區(qū)別)--自減:操作數(shù)的值減少1B--或--B等于19(區(qū)別)算術(shù)運(yùn)算符

3/Java的運(yùn)算符算術(shù)運(yùn)算符操作符描述例子=簡(jiǎn)單的賦值運(yùn)算符,將右操作數(shù)的值賦給左側(cè)操作數(shù)C=A+B將把A+B得到的值賦給C+=加和賦值操作符,它把左操作數(shù)和右操作數(shù)相加賦值給左操作數(shù)C+=A等價(jià)于C=C+A-=減和賦值操作符,它把左操作數(shù)和右操作數(shù)相減賦值給左操作數(shù)C-=A等價(jià)于C=C-

A*=乘和賦值操作符,它把左操作數(shù)和右操作數(shù)相乘賦值給左操作數(shù)C*=A等價(jià)于C=C*A/=除和賦值操作符,它把左操作數(shù)和右操作數(shù)相除賦值給左操作數(shù)C/=A等價(jià)于C=C/A(%)=取模和賦值操作符,它把左操作數(shù)和右操作數(shù)取模后賦值給左操作數(shù)C%=A等價(jià)于C=C%A&=按位與賦值運(yùn)算符C&=2等價(jià)于C=C&2^=按位異或賦值操作符C^=2等價(jià)于C=C^2|=按位或賦值操作符C|=2等價(jià)于C=C|2

3/Java的運(yùn)算符關(guān)系運(yùn)算符運(yùn)算符描述例子==檢查如果兩個(gè)操作數(shù)的值是否相等,如果相等則條件為真。(A==B)為假(非真)。!=檢查如果兩個(gè)操作數(shù)的值是否相等,如果值不相等則條件為真。(A!=B)為真。>

檢查左操作數(shù)的值是否大于右操作數(shù)的值,如果是那么條件為真。(A>B)非真。<

檢查左操作數(shù)的值是否小于右操作數(shù)的值,如果是那么條件為真。(A<B)為真。>=檢查左操作數(shù)的值是否大于或等于右操作數(shù)的值,如果是那么條件為真。(A>=B)為假。<=檢查左操作數(shù)的值是否小于或等于右操作數(shù)的值,如果是那么條件為真。(A<=B)為真。

3/Java的運(yùn)算符邏輯運(yùn)算符操作符描述例子&&稱為邏輯與運(yùn)算符。當(dāng)且僅當(dāng)兩個(gè)操作數(shù)都為真,條件才為真。(A&&B)為假。||稱為邏輯或操作符。如果任何兩個(gè)操作數(shù)任何一個(gè)為真,條件為真。(A||B)為真。!稱為邏輯非運(yùn)算符。用來反轉(zhuǎn)操作數(shù)的邏輯狀態(tài)。如果條件為true,則邏輯非運(yùn)算符將得到false。?。ˋ&&B)為真。

3/Java的運(yùn)算符位運(yùn)算符操作符描述例子&如果相對(duì)應(yīng)位都是1,則結(jié)果為1,否則為0(A&B),得到12,即00001100|如果相對(duì)應(yīng)位都是0,則結(jié)果為0,否則為1(A|B)得到61,即00111101^如果相對(duì)應(yīng)位值相同,則結(jié)果為0,否則為1(A^B)得到49,即00110001?按位補(bǔ)運(yùn)算符翻轉(zhuǎn)操作數(shù)的每一位,即0變成1,1變成0。(?A)得到-61,即11000011<<

按位左移運(yùn)算符。左操作數(shù)按位左移右操作數(shù)指定的位數(shù)。A<<2得到240,即11110000>>

按位右移運(yùn)算符。左操作數(shù)按位右移右操作數(shù)指定的位數(shù)。A>>2得到15即1111>>>

按位右移補(bǔ)零操作符。左操作數(shù)的值按右操作數(shù)指定的位數(shù)右移,移動(dòng)得到的空位以零填充。A>>>2得到15即00001111流程控制語句Part5

1/循環(huán)點(diǎn)擊此處添加標(biāo)題標(biāo)題數(shù)字等都可以通過點(diǎn)擊和重新輸入進(jìn)行更改,頂部“開始”面板中可以對(duì)字體、字號(hào)、顏色、行距等進(jìn)行修改。建議正文8-14號(hào)字,1.3倍字間距。點(diǎn)擊此處添加標(biāo)題標(biāo)題數(shù)字等都可以通過點(diǎn)擊和重新輸入進(jìn)行更改,頂部“開始”面板中可以對(duì)字體、字號(hào)、顏色、行距等進(jìn)行修改。建議正文8-14號(hào)字,1.3倍字間距。點(diǎn)擊此處添加標(biāo)題標(biāo)題數(shù)字等都可以通過點(diǎn)擊和重新輸入進(jìn)行更改,頂部“開始”面板中可以對(duì)字體、字號(hào)、顏色、行距等進(jìn)行修改。建議正文8-14號(hào)字,1.3倍字間距。生活中的案例循環(huán),想想我們的生活中哪些能和循環(huán)沾邊呢?

1/循環(huán)你試試:打印1次HelloWorld你再試試:打印100次HelloWorld你再試試:打印100次第n次HelloWorld74

1/循環(huán)123while語句do-while語句for語句While(表達(dá)式)語句;intx=1;while(x<3){System.out.println("x="+x);x++;}

1/while作用:循環(huán)1到N次語法:do <語句或語句塊>while(<布爾表達(dá)式>);例如:inti=0;do{ System.out.println(i+"

squaredis

"+(i*i)); i++;}while(i<10);76

1/do-while循環(huán)break語句—結(jié)束當(dāng)前循環(huán),并跳轉(zhuǎn)到循環(huán)之后do{ …… if(<條件表達(dá)式1>){ break; } ……}while(<條件表達(dá)式2>);continue語句—結(jié)束當(dāng)前循環(huán),并跳轉(zhuǎn)到循環(huán)之前do{ …… if(<條件表達(dá)式1>){ continue; } ……}while(<條件表達(dá)式2>);77

循環(huán)中break和continueJava程序的注釋用法Part6對(duì)于Java注釋我們主要了解三種:1,

//注釋一行2,

/*......*/注釋若干行3,

/**……*/文檔注釋79

Java注釋THANKYOU謝謝項(xiàng)目三Java面向?qū)ο蟪绦蛟O(shè)計(jì)講師:Java程序設(shè)計(jì)項(xiàng)目化教程授課教師:任務(wù)一

面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念

任務(wù)二

類的使用方法任務(wù)三

對(duì)象的創(chuàng)建與使用方法任務(wù)四

包的創(chuàng)建與使用方法項(xiàng)目小結(jié)思考與練習(xí)目錄面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念

Part1

1/面向過程與面向?qū)ο笥?jì)算機(jī)語言的發(fā)展向接近人的思維方式演變匯編語言[面向機(jī)器]C語言[面向過程]java語言[面向?qū)ο骫

1/面向過程與面向?qū)ο竺嫦驅(qū)ο笫窍鄬?duì)面向過程而言面向?qū)ο蠛兔嫦蜻^程都是一種思想面向過程強(qiáng)調(diào)的是功能行為面向?qū)ο髮⒐δ芊庋b進(jìn)對(duì)象,強(qiáng)調(diào)具備了功能的對(duì)象。面向?qū)ο笫腔诿嫦蜻^程的。

1/面向過程與面向?qū)ο竺嫦驅(qū)ο蟮奶攸c(diǎn) 示例:1,煎餅果子 2,洗衣服面向?qū)ο笤O(shè)計(jì)把握一個(gè)重要的經(jīng)驗(yàn):誰擁有數(shù)據(jù),誰就對(duì)外提供操作這些數(shù)據(jù)的方法。再牢牢掌握幾個(gè)典型的案例就可以了:列車司機(jī)緊急剎車,售貨員統(tǒng)計(jì)售貨小票的金額,你把門關(guān)上了,金三胖發(fā)射銀河三號(hào)火箭等。

1/理解面向?qū)ο箝_發(fā)的過程:其實(shí)就是不斷的創(chuàng)建對(duì)象,使用對(duì)象,指揮對(duì)象做事情。設(shè)計(jì)的過程:其實(shí)就是在管理和維護(hù)對(duì)象之間的關(guān)系。面向?qū)ο蟮奶卣鳎悍庋b(encapsulation)繼承(inheritance)多態(tài)(polymorphism)

1/面向?qū)ο箝_發(fā)、設(shè)計(jì)、特征類的使用方法Part2類與對(duì)象的關(guān)系如圖圖紙汽車汽車汽車可以理解為:類就是圖紙汽車就是堆內(nèi)存中的對(duì)象,創(chuàng)建的實(shí)體,那么實(shí)體的作用是什么?用來封裝具體數(shù)據(jù)用的

2/類與對(duì)象貓類:classCat{}屬性:顏色,灰色、白色、黑色年齡,30、10、12

名字,波斯貓、加菲貓、短尾貓方法:

睡Catcat1=newcat();cat1.age=3;="小白";cat1.color="白色";

2/類與對(duì)象

2/如何創(chuàng)建對(duì)象classCat{ //下面的就是類的成員變量/屬性 intage; Stringname; Stringcolor; MastermyMaster;}

//引用類型,比如建個(gè)主人類classMaster{ intage; Stringname; Stringaddress;}publicstaticvoidmain(String[]args){ //創(chuàng)建一個(gè)貓對(duì)象 Catcat1=newCat(); cat1.age=3; ="小白"; cat1.color="白色";

//創(chuàng)建第二只貓 Catcat2=newCat(); cat2.age=100; ="小花"; cat2.color="花色";} }實(shí)例化對(duì)象成員變量賦值定義貓類、主人類【查看】講義Demo02.java類和對(duì)象的區(qū)別和聯(lián)系1、類是抽象的,概念的,代表一類事物,比如人類,貓類.2、對(duì)象是具體的,實(shí)際的,代表一個(gè)具體事物3、類對(duì)象的模板,對(duì)象是類的一個(gè)個(gè)體,實(shí)例

2/類和對(duì)象

2/類的定義package包名;class類名extends父類implements接口名{

成員變量;

構(gòu)造方法;

成員方法;}

2/如何創(chuàng)建對(duì)象創(chuàng)建一個(gè)對(duì)象有兩種方法1、先聲明再創(chuàng)建1、對(duì)象聲明:類名對(duì)象名2、對(duì)象創(chuàng)建:對(duì)象名=new類名()

2、一步到位法

類名對(duì)象名=new類名()

對(duì)象--如何訪問(使用)對(duì)象的成員變量

對(duì)象名.變量名;//簡(jiǎn)單先這樣理解,以后加下控制符此表達(dá)就不準(zhǔn)確了。對(duì)象總是存在內(nèi)存中的

2/成員變量思考題為了讓大家加深印象,我們定義一個(gè)人類(Person)(包括名字、年齡)。用一步到位法去創(chuàng)建一個(gè)對(duì)象System.out.printlin(b.age);Persona=newPerson();a.age=10;="小明";Personb;b=a;

請(qǐng)問:b.age究竟是多少?

2/成員變量繼續(xù)思考在明白對(duì)象是如何在內(nèi)存中存在后,請(qǐng)大家再看看下面的思考題,請(qǐng)問會(huì)輸出什么信息?Person1a=newPerson1();a.age=10;="小明";Person1b;b=a;System.out.println();b.age=200;System.out.println(a.age);輸出“小明”輸出“200”

2/成員方法人類:除了有一些屬性外(成員變量表示的年齡、姓名...),我們?nèi)祟愡€有一些行為比如:可以說話、跑步..,通過學(xué)習(xí),我們?nèi)祟愡€可以做算術(shù)題。這時(shí)就要用成員方法才能完成。現(xiàn)在要求對(duì)Person類完善:1、添加speak成員方法,輸入出:我是一個(gè)好人

2、添加jisuan成員方法,可以計(jì)算從1+..+1000的結(jié)果3、修改jisuan成員方法,該方法可以接收一個(gè)數(shù)n,計(jì)算從1+..+n的結(jié)果4、添加add成員方法,可以計(jì)算兩個(gè)數(shù)的和

2/成員方法定義成員方法也叫成員函數(shù),這里希望大家不要被兩個(gè)名詞搞暈了。 public返回?cái)?shù)據(jù)類型方法名(參數(shù)列表) {

語句;//方法(函數(shù))主體 }1、參數(shù)列表:表示成員函數(shù)輸入2、數(shù)據(jù)類型(返回類型):表示成員函數(shù)輸出3、函數(shù)主體:表示為了實(shí)現(xiàn)某一功能代碼塊

2/成員方法定義示例

classPerson{ //1、可以輸出我是好人方法 publicvoidspeak(){

//請(qǐng)注意方法名的首寫字母應(yīng)為小寫如speak為方法名 System.out.println("我是一個(gè)好人"); } //2、可以計(jì)算1+..+1000的方法 publicvoidjiSuan(){ intresult=0; for(inti=1;i<=1000;i++){ result=result+i; } System.out.println("1+..+1000結(jié)果是"+result); }}//4、計(jì)算兩個(gè)數(shù)的和 publicvoidadd(intnum1,intnum2){ intresult=0; result=num1+num2; System.out.println("num1+num2="+result); }【查看】講義Demo03.java

2/成員方法的理解如何理解方法這個(gè)概念,給大家舉個(gè)通俗的示例:蘋果汁橙汁青瓜汁程序員調(diào)用方法:給方法必要的輸入,方法返回結(jié)果。

2/成員方法聲明publicinttest(inta);/*方法聲明*/這句話的作用是聲明該方法,聲明的格式為:

訪問修飾符數(shù)據(jù)類型函數(shù)名(參數(shù)列表);在給Person類添加add方法的例題中,我們看到的關(guān)鍵字return,它的功能是把表達(dá)式的值返回的值返回給主調(diào)函數(shù)的方法。

return表達(dá)式;

2/成員方法特別說明參數(shù)列表可以是多個(gè),并且數(shù)據(jù)類型可以是任意的類型intfloatdoublechar..

訪問修飾符返回?cái)?shù)據(jù)類型函數(shù)名(參數(shù)列表){

語句;//函數(shù)主體 }1、方法的參數(shù)列表可以是多個(gè)2、方法可以沒有返回值返回類型可以是任意的數(shù)據(jù)類型(int,float,double,char..)也可以沒有返回值void表示沒有返回值

訪問修飾符返回?cái)?shù)據(jù)類型函數(shù)名(形參列表){

語句;//函數(shù)主體 }

2/課堂練習(xí)1、設(shè)計(jì)計(jì)算機(jī)類,要求如下:屬性:品牌(Brand)、顏色(Color)、cpu型號(hào)(CPU)、內(nèi)存容量(Memory)、硬盤大小(Harddisk)、價(jià)格(Price)、工作狀態(tài)(Work)方法:打開(Open)、關(guān)閉(Close)、休眠(Sleep)創(chuàng)建一個(gè)計(jì)算機(jī)對(duì)象,調(diào)用打開,關(guān)閉方法【查看】講義Demo109.java對(duì)象的創(chuàng)建與使用方法Part3對(duì)象創(chuàng)建類是用來創(chuàng)建對(duì)象的模板。對(duì)象(也稱為實(shí)例)是程序的獨(dú)立元素,包含相關(guān)的特性和數(shù)據(jù)。

要?jiǎng)?chuàng)建對(duì)象,可以使用new運(yùn)算符和要?jiǎng)?chuàng)建對(duì)象所屬類的名稱,并加上圓括號(hào)。Personp1=newPerson("李麗");對(duì)象的使用1.訪問對(duì)象的屬性和行為對(duì)象的使用主要是通過訪問其屬性和方法來實(shí)現(xiàn)的2.對(duì)象的this引用this預(yù)定義對(duì)象引用變量指向?qū)ο蟊旧?,任何類都可通過this變量獲得一個(gè)代表自身的對(duì)象

變量,當(dāng)在類中明確指出使用對(duì)象自身的成員變量或方法時(shí)就應(yīng)該加上this預(yù)定義對(duì)象引用包的創(chuàng)建與使用方法Part4問題的提出

3/包package現(xiàn)在有兩個(gè)程序員共同開發(fā)一個(gè)java項(xiàng)目,程序員xiaoming希望定義一個(gè)類取名Dog,程序員xiaoqiang也想定義一個(gè)類也叫Dog。兩個(gè)程序員為此還吵了起來,怎么辦?不好,還打起來啦!

3/包package包--三大作用1、區(qū)分相同名字的類2、當(dāng)類很多時(shí),可以很好的管理類3、控制訪問范圍

3/包package包--換包命令packagecom.自定義名字;注意:打包命令一般放在文件開始處。

包--命名規(guī)范小寫字母比如com.sina.shunping包--如何引入包語法:import包;

Java常用包Java常用包主要包括java.langjava.utiljava.iojava.sql等核心系統(tǒng)包分別提供基礎(chǔ)類、工具類、輸入輸出、網(wǎng)絡(luò)編程和數(shù)據(jù)庫(kù)操作等功能。THANKYOU謝謝項(xiàng)目四

類的深入解析講師:Java程序設(shè)計(jì)項(xiàng)目化教程授課教師:任務(wù)一

類繼承的方法

任務(wù)二

類的多態(tài)性的使用方法任務(wù)三

抽象類的使用方法任務(wù)四

接口的定義項(xiàng)目小結(jié)思考與練習(xí)目錄

類繼承的方法Part1案例引入:新學(xué)期要開學(xué),不同的學(xué)生要交學(xué)費(fèi)。但如果我們對(duì)不同的學(xué)生都定義了age(年齡)、name(姓名)、fee(學(xué)費(fèi))

1/案例引入//幼兒園classPre{ publicintage; publicStringname; publicfloatfee; //交學(xué)費(fèi) publicvoidpay(floatfee){ this.fee=fee; }}//小學(xué)生classPupil

{ publicintage; publicStringname; publicfloatfee; //交學(xué)費(fèi) publicvoidpay(floatfee){ this.fee=fee*1.2f; }}//中學(xué)生classMiddleStu{ publicintage; publicStringname; publicfloatfee; //交學(xué)費(fèi) publicvoidpay(floatfee){ this.fee=fee*0.8f; }}升級(jí)代碼:

1/案例引入classStu{ protectedintage; publicStringname; publicfloatfee; privateStringjob;

publicvoidprintName(){ System.out.println("名字"+); }}//小學(xué)生類classPupilextendsStu{ publicvoidpay(floatfee){ this.fee=fee; }}//幼兒classPreextendsStu{ publicvoidpay(floatfee){ this.fee=fee*1.5f; }}//中學(xué)生類classMiddleStuextendsStu{ publicvoidpay(floatfee){ this.fee=fee*0.8f; }}父類extendsextendsextends【查看】講義Demo01.java繼承是最重要的面向?qū)ο蟾拍钪弧@^承發(fā)生在類之間,與現(xiàn)實(shí)世界的繼承類似。被繼承者稱為父類(或超類),繼承者稱為子類。子類將繼承父類的所有成員(構(gòu)造器除外)。

1/繼承的概念繼承是最重要的面向?qū)ο蟾拍钪?。繼承發(fā)生在類之間,與現(xiàn)實(shí)世界的繼承類似。被繼承者稱為父類(或超類),繼承者稱為子類。子類將繼承父類的所有成員(構(gòu)造器除外)。

1/繼承的概念

1/繼承的概念子類能否直接訪問從父類繼承的成員,取決于成員的訪問控制修飾符。訪問控制修飾符繼承規(guī)則private繼承但無法訪問default繼承并且如果父類和子類在同一個(gè)包中可訪問protected繼承且可訪問public繼承且可訪問

1/繼承成員的訪問控制123

1/繼承的示例124

1/繼承的示例125

1/單繼承多態(tài)性的使用方法Part2

3/生活中的多態(tài)中國(guó)人吃飯美國(guó)人吃飯當(dāng)叫來一個(gè)中國(guó)人時(shí),我們看到的是用筷子在吃飯,但是當(dāng)叫來的是一個(gè)美國(guó)人時(shí),我們看到的是用是叉子和小刀吃飯。同一段程序代碼(單指“叫某人來吃飯”這個(gè)函數(shù)),卻有兩種截然不同的結(jié)果,這就是面向?qū)ο蟮亩鄳B(tài)性

3/多態(tài)案例

3/多態(tài)示例//動(dòng)物類classAnimal{ //動(dòng)物會(huì)叫 publicvoidcry(){ System.out.println("不知道怎么叫"); }}動(dòng)物是所有動(dòng)物的父類,定義了一個(gè)方法cry().所有的子類[貓、狗等],都有這個(gè)cry()方法,//創(chuàng)建Dog子類并繼承Animal父類及覆蓋cry方法classDogextendsAnimal{ //狗叫 publicvoidcry(){ System.out.println("汪汪叫"); }}classCatextendsAnimal{ //貓自己叫 publicvoidcry(){ System.out.println("貓貓叫"); }}Catcat=newCat();cat.cry();Dogdog=newDog();dog.cry();非多態(tài)演示Animalan=newCat();an.cry();an=newDog();an.cry();多態(tài)演示【查看】講義Demo01.java

3/多態(tài)示例//主人類classMaster{ publicvoidfeed(Animalan,Foodf){ an.eat(); f.showName(); }}//食物父類classFood{ Stringname; publicvoidshowName(){ System.out.println("食物"); }}//食物魚子類classFishextendsFood{ publicvoidshowName(){ System.out.println("魚"); }}【查看】講義Demo02.java抽象類的使用方法Part3

1/抽象從眾多的事物中抽取出共同的、本質(zhì)性的特征,而舍棄其非本質(zhì)的特征。例如蘋果、香蕉、生梨、葡萄、桃子等,它們共同的特性就是水果。得出水果概念的過程,就是抽象的過程。要抽象,就必須進(jìn)行比較,沒有比較就無法找到共同部分。133

1/抽象處理事物復(fù)雜性的方法只關(guān)注事物的重要細(xì)節(jié),而忽略事物的次要細(xì)節(jié)。134

1/為什么要用到抽象135

1/為什么要抽象遞交報(bào)告速遞公司在回執(zhí)確認(rèn)上簽名返回回執(zhí)確認(rèn)史密斯大夫?qū)?bào)告送往目的地包裝并密封報(bào)告

2/方法重寫classA{ voidfun1(); voidfun2(){ System.out.println("thisisa"+"concretemethod"); }}abstractabstract

2/方法重寫示例含有抽象方法的類肯定是抽象類,但抽象類不一定必須包含抽象方法例:fun2()就有實(shí)現(xiàn)和不能被聲明為抽象方法抽象方法只需聲明,而不需實(shí)現(xiàn)static方法構(gòu)造函數(shù)

2/父類中聲明,子類中實(shí)現(xiàn)求面積問題難以在父類中寫出每種圖形的面積方法不能在子類中單獨(dú)實(shí)現(xiàn),否則父類不能使用解決:父類中聲明、子類中實(shí)現(xiàn)求面積求面積求面積求面積圖形類求面積138

2/抽象的示例publicabstract

classShape

{ publicStringshapeName;

/**默認(rèn)構(gòu)造方法*/ publicShape(){ }

/**參數(shù)化構(gòu)造方法*/ publicShape(StringshapeName){ this.shapeName=shapeName; }

/**抽象方法:求面積*/

publicabstractdoublegetArea();

/**已實(shí)現(xiàn)方法:介紹*/ publicvoidshowShape(){ System.out.println("正在操作的圖形為:"+shapeName); }}

2/抽象的示例publicclassCircleextendsShape

{ publicdoubleradius;//半徑

publicstaticfinaldoublePI=3.14;

/**默認(rèn)構(gòu)造方法*/ publicCircle(){ }

/**參數(shù)化構(gòu)造方法*/ publicCircle(StringshapeName,doubleradius){ super(shapeName); this.radius=radius; }

/**圓環(huán)面積*/

publicdoublegetArea(){ System.out.println("圓環(huán)面積為:"+PI*radius*radius); returnPI*radius*radius; }}

2/抽象的示例publicclassRectangle

extendsShape

{

publicdoublewidth; publicdoublelength;

/**默認(rèn)構(gòu)造方法*/ publicRectangle(){ }

/**參數(shù)化構(gòu)造方法*/ publicRectangle(StringshapeName,doublewidth,doublelength){ super(shapeName); this.width=width; this.length=length; }

/**實(shí)現(xiàn)父類抽象方法:求長(zhǎng)方形面積*/

publicdoublegetArea(){ System.out.println("長(zhǎng)方形面積為:"+width*length); returnwidth*length; }}

2/抽象的示例publicabstractclassTriangle

extendsShape{ publicdoubleborder; publicdoubleheight;

/**默認(rèn)構(gòu)造方法*/ publicTriangle(){ }

/**參數(shù)化構(gòu)造方法*/ publicTriangle(StringshapeName,doubleborder,doubleheight){ super(shapeName); this.border=border; this.height=height; }

//抽象方法未實(shí)現(xiàn)

//publicabstractdoublegetArea();}沒有實(shí)現(xiàn)父類抽象方法的子類是抽象類

2/抽象的示例抽象類與compareTo()方法我告訴你比較標(biāo)準(zhǔn),你來幫我排序例如:如果用抽象類,實(shí)現(xiàn)一個(gè)對(duì)數(shù)組元素的排序算法。

1.該數(shù)組中的每一個(gè)元素都是對(duì)象。

2.各元素之間有比較的標(biāo)準(zhǔn)。(可比性)abstractclassMyComparable{

publicabstractint compareTo(MyComparableb); }定義比較標(biāo)準(zhǔn):如當(dāng)前類小于目標(biāo)類,返回負(fù)數(shù)如當(dāng)前類大于目標(biāo)類,返回正數(shù)如當(dāng)前類等于目標(biāo)類,返回0

2/覆蓋compareTo()方法publicclassRectangleextendsMyComparable{ publicintcompareTo(MyComparableobj){ floata=this.calculateArea();//當(dāng)前圓面積

floatb=((Rectangle)obj).calculateArea();//另一個(gè)圓的面積

if(a<b) return-1; else return1; } …}接口的定義Part4

3/接口和抽象類完成長(zhǎng)輩遺愿希望晚輩實(shí)現(xiàn)我的愿望未完成長(zhǎng)輩遺愿,希望晚輩完成接口抽象類具體類

3/接口和抽象類在Java中,繼承體現(xiàn)的是“isa”的關(guān)系,而接口體現(xiàn)的則是“hasa”聚合的含義接口(interface)是特殊的“抽象類”在接口中,所有的方法都必須是抽象的,通常定義一組公用的未實(shí)現(xiàn)的方法

3/接口示例publicclassDoor{ publicvoidguard(){/*門的作用*/ System.out.println("門負(fù)責(zé)防護(hù)!"); }}publicclassMyDoorextends

DoorimplementsBell,Lamp{publicvoidalarm(){/*實(shí)現(xiàn)alarm方法*/System.out.println("當(dāng)撬門時(shí)發(fā)出警報(bào)!"); }publicvoidlight(){/*實(shí)現(xiàn)light方法*/System.out.println("開門時(shí)壁燈自動(dòng)亮起,關(guān)門后自動(dòng)關(guān)閉!");}}publicinterfaceBell{ /*鈴的功能*/ publicvoidalarm();}publicinterfaceLamp{ /*點(diǎn)燈*/ publicvoidlight();}

2/抽象類和接口的總結(jié)總結(jié)1:抽象類和接口都不能直接實(shí)例化。如果二者都要實(shí)例化,都要涉及到多態(tài)。如果抽象類要實(shí)例化,那么抽象類所定義的變量必須指向一個(gè)子類對(duì)象。這個(gè)子類繼承了這個(gè)抽象類并實(shí)現(xiàn)了這個(gè)抽象類的所有抽象方法。如果接口要實(shí)例化,那么這個(gè)接口定義的變量要指向一個(gè)子類對(duì)象,這個(gè)子類必須實(shí)現(xiàn)這個(gè)接口的所有方法。

2/抽象類和接口的總結(jié)總結(jié)2:抽象類要被子類繼承,接口要被子類實(shí)現(xiàn)??偨Y(jié)3:接口里面只能對(duì)方法進(jìn)行聲明,抽象類既可以對(duì)方法進(jìn)行聲明也可以對(duì)方法進(jìn)行實(shí)現(xiàn)。

2/抽象類和接口的總結(jié)總結(jié)4:抽象類里面的抽象方法必須全部被子類實(shí)現(xiàn),如果子類不能全部實(shí)現(xiàn),那么子類必須也是抽象類。接口里面的方法也必須全部被子類實(shí)現(xiàn),如果子類不能實(shí)現(xiàn)那么子類必須是抽象類??偨Y(jié)5:接口里面的方法只能聲明,不能有具體的實(shí)現(xiàn)。這說明接口是設(shè)計(jì)的結(jié)果,抽象類是重構(gòu)的結(jié)果。

2/抽象類和接口的總結(jié)總結(jié)6:抽象類里面可以沒有抽象方法??偨Y(jié)7:如果一個(gè)類里面有抽象方法,那么這個(gè)類一定是抽象類。總結(jié)8:抽象類中的方法都要被實(shí)現(xiàn),所以抽象方法不能是靜態(tài)的static,也不能是私有的private。

2/抽象類和接口的總結(jié)總結(jié)9:接口(類)可以繼承接口,甚至可以繼承多個(gè)接口。但是類只能繼承一個(gè)類??偨Y(jié)10:抽象級(jí)別(從高到低):接口>抽象類>實(shí)現(xiàn)類??偨Y(jié)11:抽象類主要是用來抽象類別,接口主要是用來抽象方法功能。當(dāng)你關(guān)注事物的本質(zhì)的時(shí)候,請(qǐng)用抽象類;當(dāng)你關(guān)注一種操作的時(shí)候,用接口。THANKYOU謝謝項(xiàng)目五

數(shù)組和字符串講師:Java程序設(shè)計(jì)項(xiàng)目化教程授課教師:任務(wù)一

數(shù)組任務(wù)二

字符串項(xiàng)目小結(jié)思考與練習(xí)目錄

數(shù)組Part1為什么需要數(shù)組小智開書店賣書,只會(huì)聲明單個(gè)變量存儲(chǔ)一本書的價(jià)格,可書店有幾千本書,聲明幾千個(gè)變量太麻煩了。萬一書價(jià)格隨紙張價(jià)格上漲10%,那幾千個(gè)變量都乘以(1+10%),那實(shí)在太累了。intbook1=30;intbook2=30;intbook3=30;intbook4=30;intbook5=30;intbook6=30;……..1000個(gè)變量如果書價(jià)格隨紙張價(jià)格上漲10%堆內(nèi)存和棧內(nèi)存int[]x;x=newint[100];x=null;的內(nèi)存狀態(tài)變化情況數(shù)組存儲(chǔ)聲明數(shù)組數(shù)組是用來組合相同類型數(shù)據(jù)對(duì)象的集合。聲明基本數(shù)組或引用類型數(shù)組:chars[];或char[]s;intp[];或int[]p;數(shù)組是對(duì)象;需要使用new關(guān)鍵字創(chuàng)建。160應(yīng)使用new關(guān)鍵字來創(chuàng)建數(shù)組對(duì)象。例如,創(chuàng)建一個(gè)基本類型(char)的數(shù)組,并賦值:1publicchar[]createArray(){2char[]s;3s=newchar[26];4for(inti=0;i<26;i++){5s[i]=(char)(’A’+i);6}7returns;8}一旦創(chuàng)建數(shù)組后,其大小不能再改變。161創(chuàng)建數(shù)組162創(chuàng)建字符數(shù)組163數(shù)組注意點(diǎn)靜態(tài)數(shù)組intia[]={1,2,3,4};int[]ia=newint[]{3,4,5};inta[5];//聲明數(shù)組時(shí),不能指定其長(zhǎng)度,編譯時(shí)將出錯(cuò)

使用數(shù)組時(shí)要注意的問題空指針異常如何得到數(shù)組長(zhǎng)度

數(shù)組越界異常數(shù)組邊界所有的數(shù)組索引從0開始。publicvoidprintElements(int[]list){for(inti=0;i<list.length;i++){System.out.println(list[i]);}}164數(shù)組注意點(diǎn)增強(qiáng)的for循環(huán)使用Java語言“增強(qiáng)型for循環(huán)”功能publicvoidprintElements(int[]list){for(intelement:list){System.out.println(element);}}此版本的for循環(huán)可以被讀作對(duì)于(for)list中的每個(gè)元素(element)去執(zhí)行。165數(shù)組注意點(diǎn)數(shù)組大小的不變性不能改變其大小??梢允褂猛粋€(gè)引用變量引用一個(gè)全新的數(shù)組。int[]myArray=newint[6];myArray=newint[10];166數(shù)組注意點(diǎn)二維數(shù)組:int[][]twoDim=newint[4][];twoDim[0]=newint[5];twoDim[1]=newint[5];int[][]twoDim=newint[][4];//illegal非矩形數(shù)組的數(shù)組:twoDim[0]=newint[2];twoDim[1]=newint[4];twoDim[2]=newint[6];twoDim[3]=newint[8];4X5的整型數(shù)組: int[][]twoDim=newint[4][5];167多維數(shù)組找出數(shù)組元素中的最大值與最小值168簡(jiǎn)單案例:數(shù)組字符串Part2

1/工作場(chǎng)景窩夫蛋糕店每天都有大量的交易,均以文本的方式保存起來。文本中交易記錄如下:1,20070802,A02,2,45,902,20070802,A01,3,40,120......案例導(dǎo)入

1/認(rèn)識(shí)字符串以字符串的形式存儲(chǔ)一條交易記錄

StringsaleRecord;saleRecord=newString(“1,20070802,A02,2,45,90”);

涉及以下方面:字符串變量的創(chuàng)建方法字符串對(duì)象的構(gòu)造方法“面包店的數(shù)據(jù)展示”

1/無處不在的字符串生活中的字符串使用String對(duì)象存儲(chǔ)字符串String類位于java.lang包中,具有豐富的方法計(jì)算字符串的長(zhǎng)度連接字符串比較字符串提取字符串/

頻繁使用的字符串“有志者事竟成”“天貓雙十一成交額突破1600億”“專業(yè)成就夢(mèng)想”Strings="有志者事竟成";Strings=newString("有志者事竟成");

1/字符串長(zhǎng)度//publicclassHello1{publicstaticvoidmain(String[]args){System.out.print(“請(qǐng)隨機(jī)輸入蛋糕的名字:");Scannerinput=newScanner(System.in);Stringname=input.next();System.out.println("這個(gè)名字的長(zhǎng)度是:\"

"+name.length()+"\"

");}隨機(jī)輸入窩夫蛋糕店里蛋糕的名字,并輸出其字符長(zhǎng)度調(diào)用字符串的length()方法可以獲得字符串的長(zhǎng)度要想打印輸出引號(hào)(”),必須在字符串中使用轉(zhuǎn)義序列\(zhòng)”案例導(dǎo)入計(jì)算字符串長(zhǎng)度/字符串長(zhǎng)度調(diào)用length()方法獲得返回字符串中的字符數(shù)調(diào)用方法:字符串標(biāo)識(shí)符.length();方法原型:publicintlength(){}

1/字符串長(zhǎng)度equals()方法比較原理輸入的“Tiramisu”和“tiramisu”代表同一個(gè)

“提拉米蘇”蛋糕,如何解決?使用equalsIgnoreCase()方法結(jié)合toUpperCase()或toLowerCase()/字符串1字符串2檢查組成字符串內(nèi)容的字符是否完全一致

1/字符串比較使用equalsIgnoreCase()方法解決/比較時(shí)忽略大小寫形式if(favCake1.equalsIgnoreCase(favCake2)){System.out.println(“最喜歡的蛋糕相同");}else{System.out.println(“最喜歡的蛋糕不相同");}

1/字符串比較結(jié)合toUpperCase()方法解決/Tiramisu使用toUpperCase(

)

方法Tiramisu使用toLowerCase(

)

方法tiramisuif(favCake1.toUpperCase().equals(favCake2.toUpperCase())){System.out.println(“最喜歡的蛋糕相同");}else{System.out.println(“最喜歡的蛋糕不相同");}

1/字符串比較TIRAMISU

WF蛋糕店每天銷售如表所示,輸出他的銷售單蛋糕銷量tiramisu80cheeseCake90cocoCake86.7/publicstaticvoidmain(String[]args){inttiramisu=80;//提拉米蘇銷量intcheeseCake=90;//芝士蛋糕銷量doublecocoCake=86;//可可蛋糕//創(chuàng)建成績(jī)單Stringscore="tiramisu:"+tiramisuScore+"

cheeseCake:"+javaScore+"

cocoCake:"+cocoCakeScore;//打印System.out.println(“*****WF蛋糕店銷量*****");System.out.println(score);

}“+”連接字符串Stringscore="tiramisu:\t"+tiramisuScore+"\ncheeseCake:\t"+javaScore+"\ncocoCake:\t"+cocoCakeScore;數(shù)值型變量自動(dòng)轉(zhuǎn)換成String類型

1/字符串連接案例導(dǎo)入

1/字符串連接方法1:使用“+”方法2:使用String類的concat()方法我喜歡,提拉米蘇!Strings=newString(“我喜歡,");Stringname=newString(“提拉米蘇!");Stringsentence=s.concat(name);System.out.println(sentence);輸出結(jié)果A.concat(B):B字符串將被連接到A字符串后面

1/字符串的分割字符串的分割,就是控制分割后,形成多個(gè)字符串

String[]ses=s.split(str);如:Stringstr=newString(“提拉米蘇,芝士蛋糕,巧克力蛋糕");String[]courses=str.split(",");

1/提取單個(gè)字符在這里我們可以使用charAt();Stringa=“tiramisu”;charb=a.charAt(3);System.out.print(b);a注意:charAt()方法返回的是char類型的值,里邊的參數(shù)是要求提取的位置/

1/String常用提取方法常用提取方法舉例方法說明publicintindexOf(intch)搜索第一個(gè)出現(xiàn)的字符ch(或字符串value)publicintindexOf(Stringvalue)publicintlastIndexOf(intch)搜索最后一個(gè)出現(xiàn)的字符ch(或字符串value)publicintlastIndexOf(Stringvalue)返回出現(xiàn)第一個(gè)匹配的位置,如果沒有找到字符或字符串,則返回-1提拉米蘇0123

位置//

1/String常用提取方法方法說明publicStringsubstring(intindex)提取從位置索引開始的字符串部分publicStringsubstring(intbeginindex,intendindex)提取beginindex和endi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論