Java語(yǔ)言程序設(shè)計(jì)(一)串講.ppt_第1頁(yè)
Java語(yǔ)言程序設(shè)計(jì)(一)串講.ppt_第2頁(yè)
Java語(yǔ)言程序設(shè)計(jì)(一)串講.ppt_第3頁(yè)
Java語(yǔ)言程序設(shè)計(jì)(一)串講.ppt_第4頁(yè)
Java語(yǔ)言程序設(shè)計(jì)(一)串講.ppt_第5頁(yè)
已閱讀5頁(yè),還剩354頁(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)介

1、Java 語(yǔ)言程序設(shè)計(jì)(一)講義,更多優(yōu)質(zhì)自考資料盡在百度貼吧自考樂(lè)園俱樂(lè)部(,目錄,:第1、2章Java基礎(chǔ)知識(shí) :第3章面向?qū)ο缶幊袒A(chǔ) :第4章數(shù)組與字符串 :第5 、6章圖形界面設(shè)計(jì) :第7章圖形圖象與多媒體 :第8章多線(xiàn)成 :第9章輸入輸出流 :第10章網(wǎng)絡(luò)與數(shù)據(jù)庫(kù)編程基礎(chǔ) :考情分析(即應(yīng)試指導(dǎo)) :附自考樂(lè)園誠(chéng)與天下自考人共勉,基礎(chǔ)知識(shí)部分重點(diǎn): 應(yīng)用程序和小應(yīng)用程序的基礎(chǔ)知識(shí) 程序的開(kāi)發(fā)過(guò)程 基本數(shù)據(jù)類(lèi)型 算術(shù)運(yùn)算、關(guān)系運(yùn)算、邏輯運(yùn)算、自增自減運(yùn)算。 JAVA語(yǔ)句,Java語(yǔ)言基礎(chǔ)知識(shí),一、什么是程序 生活中的程序: 程序一詞來(lái)自生活,通常指完成某些事務(wù)的一種既定方式和過(guò)程 在

2、日常生活中,可以將程序看成對(duì)一系列動(dòng)作的執(zhí)行過(guò)程的描述 計(jì)算機(jī)程序: 為了讓計(jì)算機(jī)執(zhí)行某些操作或解決某個(gè)問(wèn)題而編寫(xiě)的一系列有序 指令的集合.,Java語(yǔ)言基礎(chǔ)知識(shí),二、為什么學(xué)習(xí)JAVA Java是Sun Microsystems于1995年推出的高級(jí)編程語(yǔ)言 Java 領(lǐng)域的JavaSE、JavaEE技術(shù)已發(fā)展成為同C#和.NET平分天下的應(yīng)用軟件開(kāi)發(fā)平臺(tái)和技術(shù) 三、JAVA能作什么 開(kāi)發(fā)桌面應(yīng)用程序 銀行軟件、商場(chǎng)結(jié)算軟件 開(kāi)發(fā)面向Internet的應(yīng)用程序 網(wǎng)上數(shù)碼商城、阿里巴巴、易趣網(wǎng),四、JAVA的特點(diǎn) 1、強(qiáng)類(lèi)型 2、編譯和解釋 3、自動(dòng)無(wú)用內(nèi)存回收功能 4、面向?qū)ο?5、與平臺(tái)無(wú)

3、關(guān) 6、安全性 7、分布式計(jì)算 8、多線(xiàn)程,五、JAVA程序的開(kāi)發(fā)過(guò)程:三步走,1、編寫(xiě)源程序,2、編譯源程序,3、運(yùn)行,第一個(gè)Java程序,public class HelloWorld public static void main(String args) System.out.println(“你好! JAVA課程); ,public class HelloAccp public static void main(String args) System.out.println(“你好! JAVA課程); ,關(guān)鍵字高亮顯示,類(lèi)名與文件名完全一樣,main方法是Java程序執(zhí)行的入口點(diǎn),和

4、一一對(duì)應(yīng),缺一不可,main方法四要素必不可少,從控制臺(tái)輸出信息,變量1、概念:是存儲(chǔ)數(shù)據(jù)的一個(gè)基本單元。2、變量的聲明和賦值,數(shù)據(jù)類(lèi)型 變量名 = 數(shù)值;,數(shù)據(jù)類(lèi)型 變量名; 變量名 = 數(shù)值;,第一步:聲明一個(gè)變量 第二步:賦值 第三步:使用變量,根據(jù)類(lèi)型開(kāi)辟空間,將數(shù)據(jù)存入空間,取出數(shù)據(jù)使用,使用變量的步驟:,數(shù)據(jù)屬于不同類(lèi)別,非洲,The quick brown fox,TRUE,數(shù)據(jù),非數(shù)值,數(shù)值,整型,非整型,9002.12,999,9/12/2003,2.175,123,陳揚(yáng),char,非數(shù)值,數(shù)值,整型,int,double,非整型,String,Java數(shù)據(jù)類(lèi)型,數(shù)據(jù)類(lèi)型,數(shù)

5、據(jù)類(lèi)型說(shuō)明,數(shù)據(jù)類(lèi)型說(shuō)明,1、字母 2、下劃線(xiàn)_ 3、$ 符號(hào),首字母,任意多的: 1、數(shù)字 2、字母 3、下劃線(xiàn)_ 4、$ 符號(hào),其余部分,變 量 名,Java語(yǔ)言中,變量命名要符合一定規(guī)則,變量命名規(guī)范: 簡(jiǎn)短且能清楚地表明變量的作用,通常第一個(gè)單詞的首字母小寫(xiě),其后單詞的 首字母大寫(xiě)。例如:myScore,變量命名規(guī)則,變量名 表達(dá)式;,賦值運(yùn)算符,=,Z = ( X * 2 ) + ( 5 Y ),表達(dá)式,表達(dá)式,表達(dá)式,賦值運(yùn)算符,表達(dá)式舉例,算術(shù)運(yùn)算符,基本的算術(shù)運(yùn)算,比較高低、大小、長(zhǎng)短 張三的考試成績(jī)是否比李四高 大象是否比烏龜更長(zhǎng)壽 籃球跟地球一樣大嗎,如何比較?,使用關(guān)系運(yùn)

6、算符可以比較高低、大小、長(zhǎng)短,?,使用關(guān)系運(yùn)算符,什么是關(guān)系運(yùn)算符,常用的關(guān)系運(yùn)算符有哪些: ,=,=,大象的壽命 李四的成績(jī) 假 令狐沖每次考試成績(jī) = 90分 真 籃球的大小 = 地球的大小 假,由此看出,關(guān)系運(yùn)算符的作用:用來(lái)做比較運(yùn)算 比較后結(jié)果:boolean類(lèi)型,在某種條件下,系統(tǒng)自動(dòng)完成類(lèi)型轉(zhuǎn)換 兩種類(lèi)型兼容 例如:int 和 double 兼容 目標(biāo)類(lèi)型大于源類(lèi)型 例如:double 型 大于 int 型 對(duì)于表達(dá)式 如果一個(gè)操作數(shù)為double型,則整個(gè)表達(dá)式可提升為double型,自動(dòng)類(lèi)型轉(zhuǎn)換-類(lèi)型提升規(guī)則,int before = 20; /apple筆記本市場(chǎng)份額 do

7、uble rise = 9.8; /增長(zhǎng)的份額 int now = before + rise; /現(xiàn)在的份額,int now = before + (int)rise;,去年Apple筆記本所占的市場(chǎng)份額是20,今年增長(zhǎng)的市場(chǎng)份額是9.8,求今年所占的份額?,編譯出錯(cuò):不能完成 自動(dòng)類(lèi)型轉(zhuǎn)換,(類(lèi)型名)表達(dá)式,強(qiáng)制類(lèi)型轉(zhuǎn)換,int b = (int)10.2; double a = 10; int c = (int)a;,強(qiáng)制類(lèi)型轉(zhuǎn)換,更改為,強(qiáng)制類(lèi)型轉(zhuǎn)換,什么是if條件結(jié)構(gòu),if條件結(jié)構(gòu)是根據(jù)條件判斷之后再做處理,if ( 條件 ) /語(yǔ)句 ,if ( java成績(jī) 90 ) 可以快速上崗

8、; ,結(jié)合問(wèn)題2,基本的if條件結(jié)構(gòu),如何使用if條件結(jié)構(gòu),3、小明Java成績(jī)大于90分,而且音樂(lè)成績(jī)大于80分,父母獎(jiǎng)勵(lì)他;或者Java成績(jī)等于100分,音樂(lè)成績(jī)大于70分,父母也可以獎(jiǎng)勵(lì)他,分析:怎樣把多個(gè)條件連接起來(lái)?,使用邏輯運(yùn)算符,如何使用if條件結(jié)構(gòu),if-else條件結(jié)構(gòu),if ( 條件 ) /語(yǔ)句1 else /語(yǔ)句2 ,if ( 小明考試成績(jī) 90 ) 父母獎(jiǎng)勵(lì)小明; else 父母罰他不許玩電腦; ,結(jié)合問(wèn)題4,多重if結(jié)構(gòu)就是在else部分中還包含其他if塊,什么是多重if結(jié)構(gòu),if ( 條件 ) /語(yǔ)句 else if ( 條件 ) /語(yǔ)句 else /語(yǔ)句 ,可以有

9、多個(gè),可以省略,多重if結(jié)構(gòu),switch (表達(dá)式) case 常量 1: 語(yǔ)句; break; case 常量 2: 語(yǔ)句; break; default: 語(yǔ)句; ,switch結(jié)構(gòu),什么是switch結(jié)構(gòu),計(jì)算表達(dá)式的值,如果等于常量1,如果等于常量2,如果沒(méi)有找到匹配的值,常見(jiàn)錯(cuò)誤,int mingCi = 1; switch (mingCi) case 1: System.out.println(出任武林盟主); case 2: System.out.println(出任武當(dāng)掌門(mén)); case 3: System.out.println(出任峨嵋掌門(mén)); default: Syst

10、em.out.println(被逐出師門(mén)); ,輸出結(jié)果是什么?,如果需要每個(gè)case執(zhí)行完后跳出, 在每個(gè)case后不要忘記寫(xiě)break;,常見(jiàn)錯(cuò)誤,int mingCi = 1; switch (mingCi) case 1: System.out.println(出任武林盟主); case 2: System.out.println(出任武當(dāng)掌門(mén)); case 2: System.out.println(出任峨嵋掌門(mén)); default: System.out.println(被逐出師門(mén)); ,case后面的常量必須各不相同,代碼錯(cuò)誤,常見(jiàn)錯(cuò)誤,String day = 星期一; swi

11、tch (day) case 星期一: System.out.println(星期一:青菜 ); break; case 星期二: System.out.println(星期二:魚(yú) ); break; default: ,switch后面小括號(hào)中表達(dá)式的值必須是整型或字符型,代碼錯(cuò)誤,比較switch和多重if結(jié)構(gòu),相同點(diǎn) 不同點(diǎn) switch 多重if,都可以實(shí)現(xiàn)多分支結(jié)構(gòu),只能處理等值的條件判斷,且條件是整型變量或字符變量的等值判斷,處理在else部分還包含其它if結(jié)構(gòu),特別適合某個(gè)變量處于某個(gè)區(qū)間時(shí)的情況,什么是循環(huán):,打印50份試卷,10000米賽跑,旋轉(zhuǎn)的車(chē)輪,循環(huán)結(jié)構(gòu)的特點(diǎn),鍥而不

12、舍地學(xué)習(xí),生活中的循環(huán),什么是while循環(huán),特點(diǎn):先判斷,再執(zhí)行 步驟:使用while循環(huán)的步驟 1、分析循環(huán)條件和循環(huán)操作 2、套用while語(yǔ)法寫(xiě)出代碼 3、檢查循環(huán)是否能夠退出,while ( 循環(huán)條件 ) 循環(huán)操作 ,符合條件,循環(huán)繼續(xù)執(zhí)行;否則,循環(huán)退出,循環(huán)中被重復(fù)執(zhí)行的操作,int i = 1; while ( i = 30 ) System.out.println(我能行!); i +; ,編碼規(guī)范:縮進(jìn)、換行,while循環(huán)常見(jiàn)問(wèn)題,/* 打印4次“歡迎新同學(xué)” */ public static void main(String args) int i = 0; while

13、 (i 4 ) System.out.println(“歡迎新同學(xué)); i + ; ,永遠(yuǎn)都不會(huì)退出的循環(huán)稱(chēng)為死循環(huán),循環(huán)一直執(zhí)行,不會(huì)退出,哪里出錯(cuò)了?,while循環(huán)常見(jiàn)問(wèn)題,/* 打印4次“歡迎新同學(xué)” */ public static void main(String args) int i= 1; while ( i 4 ) System.out.println(“歡迎新同學(xué)); i +; ,i = 4,只打印了三次 ,哪里出錯(cuò)了?,注意檢查循環(huán)次數(shù)是否滿(mǎn)足需求,while循環(huán)常見(jiàn)問(wèn)題,/* 打印4次“歡迎新同學(xué)” */ public static void main(String

14、args) int i = 0; while ( i 5 ) System.out.println(“歡迎新同學(xué)); i +; ,注意:如果一開(kāi)始條件就不滿(mǎn)足,while循環(huán)一次都不執(zhí)行,i 5,一次都沒(méi)有打印,哪里出錯(cuò)了?,什么是do-while循環(huán),do 循環(huán)操作 while ( 循環(huán)條件 );,先執(zhí)行一遍循環(huán)操作,符合條件,循環(huán)繼續(xù)執(zhí)行;否則,循環(huán)退出,特點(diǎn):先執(zhí)行,再判斷,while循環(huán)和do-while循環(huán)的區(qū)別 語(yǔ)法不同 初始情況不滿(mǎn)足循環(huán)條件時(shí) while循環(huán)一次都不會(huì)執(zhí)行 do-while循環(huán)不管任何情況都至少執(zhí)行一次,do 循環(huán)操作 while( 循環(huán)條件 );,while

15、( 循環(huán)條件 ) 循環(huán)操作 ,先判斷,再執(zhí)行,先執(zhí)行,再判斷,比較while和do-while,for循環(huán)的語(yǔ)法和執(zhí)行順序,什么是for循環(huán),for( ; ; ) ; ,條件為true,循環(huán)體被執(zhí)行,for ( int i = 0 ; i 100 ; i+ ) System.out.println(我最棒); ,代碼規(guī)范:格式對(duì)齊、代碼的縮進(jìn),表達(dá)式1,表達(dá)式2,表達(dá)式3,循環(huán)操作,參數(shù)初始化,條件判斷,更新循環(huán)變量,1,2,4,3,for循環(huán)常見(jiàn)問(wèn)題,for(;i10;i+) System.out.println(這是 +i); ,int i=0;,編譯錯(cuò)誤: 變量 i 沒(méi)有初始化,for(

16、 ; ; ) ; ,不能省略,可省略,表達(dá)式1省略,循環(huán)變量 的初始值在for語(yǔ)句之前 由賦值語(yǔ)句取得,for循環(huán)常見(jiàn)問(wèn)題,for(int i=0;i+) System.out.println(這是 +i); ,編譯正確,但是缺少 循環(huán)條件,造成死循環(huán),for循環(huán)常見(jiàn)問(wèn)題,for(int i=0;i10;) System.out.println(這是 +i); ,i+;,省略表達(dá)式3,在循環(huán)體內(nèi)應(yīng)設(shè)法改 變循環(huán)變量的值以結(jié)束循環(huán),編譯通過(guò),但是循環(huán)變量的值無(wú)變化,造成死循環(huán),for循環(huán)常見(jiàn)問(wèn)題,for(;) System.out.println(這是測(cè)試); ,表達(dá)式全省略,無(wú)條件判斷,循環(huán)變

17、量無(wú)改變, 應(yīng)在循環(huán)體內(nèi)設(shè)法結(jié)束循環(huán),否則會(huì)造成死循環(huán),死循環(huán),為什么需要break語(yǔ)句,int i = 2; switch(i) case 1: System.out.println(星期一); break; case 2: System.out.println(星期二); break; /其他語(yǔ)句,遇到break,立即跳出switch語(yǔ)句,回顧break用于switch語(yǔ)句,描述4000米長(zhǎng)跑比賽,for (int i = 0; i10; i+) 跑400米; ,if(不能堅(jiān)持) break; /退出比賽 ,第8圈, 快累死了 我要退出,什么是break語(yǔ)句,break:改變程序控制流 用

18、于do-while、while、for中時(shí),可跳出循環(huán)而執(zhí)行循環(huán)后面的語(yǔ)句,while() break; ,跳出整個(gè)循環(huán),break通常在循環(huán)中與條件語(yǔ)句一起使用,什么是continue語(yǔ)句,continue :只能用在循環(huán)里 continue 作用:跳過(guò)循環(huán)體中剩余的語(yǔ)句而執(zhí)行下一次循環(huán),while() continue; ,繼續(xù)下一次循環(huán),通常與條件語(yǔ)句一起使用,加速循環(huán),for(int i = 0; i10;i+) 跑400米; if(!口渴) continue; /不喝水,繼續(xù)跑 接過(guò)水壺,喝水; ,示例,循環(huán)結(jié)構(gòu)總結(jié),到目前為止所學(xué)的循環(huán)結(jié)構(gòu)有哪些?,需要多次重復(fù)執(zhí)行一個(gè)或多個(gè)任務(wù)的

19、問(wèn)題考慮使用 循環(huán)來(lái)解決,循環(huán)總結(jié),int i=0; int sum=0; while( i10 ) sum=sum+i; i+; ,int i=0; int sum=0; do sum=sum+i; i+; while(i10);,int sum=0; for(int i=0;i10;i+) sum=sum+i; ,1,2,3,4,1,2,3,4,1,2,3,4,while和for相同,先進(jìn)行判斷,后執(zhí)行循環(huán)體內(nèi)容 do-while是先執(zhí)行,后判斷,至少執(zhí)行一次,指出各種循環(huán)結(jié)構(gòu)的執(zhí)行順序,控制流語(yǔ)句小結(jié),順序結(jié)構(gòu):語(yǔ)句順序執(zhí)行 分支結(jié)構(gòu):語(yǔ)句在滿(mǎn)足條件下執(zhí)行 if, if-else, if

20、-else if-else, switch 循環(huán)結(jié)構(gòu):語(yǔ)句在滿(mǎn)足條件下循環(huán)執(zhí)行多次 while, do-while, for 跳轉(zhuǎn)語(yǔ)句 break, continue,包,包解決類(lèi)的同名問(wèn)題,允許類(lèi)組成較小的單元(類(lèi)似 文件夾),易于找到和使用相 應(yīng)的文件,防止命名沖突,更好的保護(hù)類(lèi)、數(shù) 據(jù)和方法,如何創(chuàng)建包,package s1java.sg.chap7 ; public class AccpSchool public String toString() ,包名,使用package聲明包, 以分號(hào)結(jié)尾,如果有包的聲明,一定 作為Java源代碼的第一條 語(yǔ)句,包命名規(guī)范,包名由小寫(xiě)字母組成,不

21、能以圓點(diǎn)開(kāi)頭或結(jié)尾 自己設(shè)定的包名之前最好加上唯一的前綴,通常使用組織倒置的網(wǎng)絡(luò)域名。如:域名 自己設(shè)定的包名部分依不同機(jī)構(gòu)各自?xún)?nèi)部的規(guī)范不同而不同,package mypackage;,package net.javagroup.mypackage;,package net.javagroup.research.powerproject;,部門(mén)名,項(xiàng)目名,package .mypackage; ,如何導(dǎo)入包,為了使用不在同一包中的類(lèi),需要在Java程序中使用import關(guān)鍵字導(dǎo)入這個(gè)類(lèi),import java.util.*; /導(dǎo)入java.util包中所有類(lèi) import java.lan

22、g.*; /導(dǎo)入java.lang包中所有類(lèi),關(guān)鍵字import并不陌生,import 包名. 類(lèi)名;,1、系統(tǒng)包(eg:java.lang) 2、自定義包:net.javagroup,*: 指包中的所有類(lèi) HelloSchool:指包中的HelloSchool類(lèi),什么是異常,異常就是在程序的運(yùn)行過(guò)程中所發(fā)生的不正常的事件,它會(huì)中斷正在運(yùn)行的程序,異常!,程序運(yùn)行,程序中斷運(yùn)行,Java 語(yǔ)言程序設(shè)計(jì)(一)串講,主講人:周立民 更多優(yōu)質(zhì)自考資料盡在百度貼吧自考樂(lè)園俱樂(lè)部(,面向?qū)ο缶幊袒A(chǔ),本部分重點(diǎn) JAVA語(yǔ)言的類(lèi) 對(duì)象 繼承 多態(tài) 接口 JAVA小應(yīng)用程序基礎(chǔ),世界是由什么組成的?,面向

23、對(duì)象編程基礎(chǔ),對(duì)象的特征屬性,屬性對(duì)象具有的各種特征 每個(gè)對(duì)象的每個(gè)屬性都擁有特定值 例如:王小紅和朱小雨的體重不一樣,60kg,王小紅,屬性,35歲,對(duì)象的特征方法,方法對(duì)象執(zhí)行的操作,打單,收銀,方法,刷卡,封裝,對(duì)象同時(shí)具有屬性和方法兩項(xiàng)特性 對(duì)象的屬性和方法通常被封裝在一起,共同體現(xiàn)事物的特性, 二者相輔相承, 不能分割,誰(shuí)看見(jiàn)過(guò)只有“完好的零件和顏色”而不能開(kāi)動(dòng)的汽車(chē)?,類(lèi):從對(duì)象抽取出類(lèi),顧客類(lèi) 轎車(chē)類(lèi) ,類(lèi)是模子,確定對(duì)象將會(huì)擁有的特征(屬性)和行為(方法),類(lèi)是對(duì)象的類(lèi)型 不同于int類(lèi)型:具有方法,各種口味的球狀冰淇淋,球狀冰淇淋模子,類(lèi)和對(duì)象有什么區(qū)別呢?,類(lèi)是抽象的概念,

24、僅僅是模板,比如說(shuō):“人” 對(duì)象是一個(gè)你能夠看得到、摸得著的具體實(shí)體,比如:“小布什”,小布什,普京,克林頓,Java 是面向?qū)ο蟮恼Z(yǔ)言,所有Java程序都以類(lèi)class為組織單元 關(guān)鍵字class定義自定義的數(shù)據(jù)類(lèi)型,public class HelloWorld public static void main(String args) System.out.println(使用Java語(yǔ)言理解程序邏輯); ,Java類(lèi)模板,類(lèi)將現(xiàn)實(shí)世界中的概念模擬到計(jì)算機(jī)程序中,public class 類(lèi)名 /定義屬性部分 屬性1的類(lèi)型 屬性1; 屬性2的類(lèi)型 屬性2; 屬性n的類(lèi)型 屬性n; /定義方

25、法部分 方法1; 方法2; 方法m; ,定義類(lèi),定義一個(gè)類(lèi)的步驟 1、定義類(lèi)名 2、編寫(xiě)類(lèi)的屬性 3、編寫(xiě)類(lèi)的方法,常見(jiàn)錯(cuò)誤,public class .Book String bookName; String authorName; int pageNum; boolean isAvailable; ,類(lèi)命名規(guī)則: 1、不能使用Java關(guān)鍵字 2、首字母可以為字母,也可以是“_”或“$ ”(建議不要這樣) 3、不能包含空格或“.”號(hào),代碼錯(cuò)誤,如何創(chuàng)建和使用對(duì)象,使用對(duì)象的步驟: 使用new創(chuàng)建類(lèi)的一個(gè)對(duì)象 使用對(duì)象:使用“.”進(jìn)行以下操作 給類(lèi)的屬性賦值:對(duì)象名.屬性 調(diào)用類(lèi)的方法:對(duì)象名

26、.方法名(),School center = new School();,center.schoolName = “北京大學(xué); /給屬性賦值 center.toString(); /調(diào)用類(lèi)的方法,該方法中的操作將被執(zhí)行,面向?qū)ο螅∣O)的優(yōu)點(diǎn),便于程序模擬現(xiàn)實(shí)世界中的實(shí)體 用“類(lèi)”表示實(shí)體的特征和行為 隱藏細(xì)節(jié) 對(duì)象的行為和屬性被封裝在類(lèi)中,外界通過(guò)調(diào)用類(lèi)的方法來(lái)獲得,不需關(guān)注內(nèi)部細(xì)節(jié)如何實(shí)現(xiàn) 可重用 可以通過(guò)類(lèi)的模板,創(chuàng)建多個(gè)類(lèi)的對(duì)象,數(shù)據(jù)類(lèi)型總結(jié),int double char,String 使用class定義的類(lèi)型 Student Teacher School ,基本數(shù)據(jù)類(lèi)型,引用數(shù)據(jù)類(lèi)

27、型,數(shù)據(jù)類(lèi)型使用區(qū)別,類(lèi)的方法,寫(xiě)出獅子對(duì)象的“跑”方法 寫(xiě)出獅子對(duì)象的“叫”方法,電動(dòng)玩具獅子 屬性: 顏色:黃色 行為: 跑 叫,按此按鈕, 獅子開(kāi)始跑,如何定義類(lèi)的方法,類(lèi)的方法定義類(lèi)的某種行為(或功能),方法的名稱(chēng),方法的主體,方法返回的數(shù)據(jù)類(lèi)型,定義類(lèi)的方法,public 返回值類(lèi)型 方法名() /這里編寫(xiě)方法的主體 ,步驟一:定義方法名以及返回值,步驟二:編寫(xiě)方法體,方法的命名,如何給方法起名字? 必須以字母、_或開(kāi)頭 可以包括數(shù)字,但不能以它開(kāi)頭 遵循的命名規(guī)范 通常方法名是一個(gè)動(dòng)詞,如果有兩個(gè)以上單詞組成,第一個(gè)單詞的首字母小寫(xiě),其后單詞首字母大寫(xiě),方法的返回值,兩種情況 如果

28、方法具有返回值,方法中必須使用關(guān)鍵字return返回該值,返回類(lèi)型為該返回值的類(lèi)型 如果方法沒(méi)有返回值,返回類(lèi)型為void,public class Student String name = 張三; public void getName() return name; ,返回類(lèi)型要匹配,return 表達(dá)式;,編譯錯(cuò)誤,常見(jiàn)錯(cuò)誤,public class School public static void main(String args) return “北京大學(xué)! ; ,返回類(lèi)型是void 方法中不能有返回值,常見(jiàn)錯(cuò)誤,public class Student public double

29、 getInfo() double weight = 95.5; double height = 1.69; return weight, height; ,方法至多可以返回一個(gè)值,不能返回多個(gè)值,方法調(diào)用,方法是個(gè)“黑匣子”,完成某個(gè)特定的應(yīng)用程序功能,并返回結(jié)果 方法調(diào)用:執(zhí)行方法中包含的語(yǔ)句,對(duì)象名.方法名();,方法調(diào)用小結(jié),方法之間允許相互調(diào)用,不需要知道方法的具體實(shí)現(xiàn),提高了效率,變量作用域,變量聲明的位置決定變量作用域 變量作用域確定可在程序中按變量名訪(fǎng)問(wèn)該變量的區(qū)域, for(int i = 0, a = 0; i 4; i+) a+; System.out.println(a

30、); ,a的作用域僅在for循環(huán)中,代碼錯(cuò)誤,變量作用域,變量1類(lèi)型 變量1; 變量2類(lèi)型 變量2; 變量3類(lèi)型 變量3;,public 返回類(lèi)型 方法1() 變量4類(lèi)型 變量4; public 返回類(lèi)型 方法2() 變量5類(lèi)型 變量5; ,public class AutoLion,AutoLion類(lèi)的方法 別的類(lèi)的方法,誰(shuí)能使用這些變量?,方法1,方法2,成員變量,局部變量,局部變量,面向?qū)ο蟮木幊趟季S,ScoreCalc類(lèi) 和 Test類(lèi),public static void main(String args) Scanner input = new Scanner(System.in)

31、; System.out.print(請(qǐng)輸入Java成績(jī):); int java = input.nextInt(); /*計(jì)算并顯示輸出*/ int total = java + c + db; double avg = total / 3; System.out.print(總成績(jī): + total); System.out.print(n平均分: + avg); ,一次還可以接受,如果 還要再執(zhí)行這個(gè)功能, 難道還要重復(fù)再寫(xiě)?,類(lèi)的方法實(shí)現(xiàn)某個(gè)特定的功能, 別的類(lèi)不需要知道它如何實(shí)現(xiàn)! 知道了實(shí)現(xiàn)此功能的類(lèi)和它的方法名, 就可以直接調(diào)用了,不用重復(fù)寫(xiě)代碼!,什么是封裝,public cl

32、ass Teacher2 private String name; / 教員姓名 / 返回教員姓名 public String getName() return name; / 設(shè)定教員姓名 public void setName(String name) = name; ,封裝,就是隱藏實(shí)現(xiàn)細(xì)節(jié) 將屬性私有化,提供公有方法訪(fǎng)問(wèn)私有屬性 通過(guò)這些公有方法訪(fǎng)問(wèn)私有屬性,Teacher2 teacher = new Teacher2(); teacher.setName (李芳); String tName = teacher.getName();,通過(guò)setter、gette

33、r方法訪(fǎng)問(wèn)name屬性,this代表當(dāng)前類(lèi)的實(shí)例,82,如何實(shí)現(xiàn)封裝,封裝的實(shí)現(xiàn): 1、修改屬性的可見(jiàn)性來(lái)限制對(duì)屬性的訪(fǎng)問(wèn) 2、為每個(gè)屬性創(chuàng)建一對(duì)賦值(setter)方法和取值(getter) 方法,用于對(duì)這些屬性的訪(fǎng)問(wèn) 3、在setter和getter方法中,加入對(duì)屬性的存取限制,public class Teacher3 private String name; / 教員姓名 private int age; /年齡 public int getAge() return age; public void setAge(int age) if (age22) System.out.print

34、ln(錯(cuò)誤!最小年齡應(yīng)為22歲!); this.age = 22; /如果不符合年齡要求,則賦予默認(rèn)值 else this.age = age; /此處省略對(duì)name屬性的setter、getter方法 ,1,2,3,83,如何實(shí)現(xiàn)封裝,public class Teacher3Test public static void main(String args) AccpTeacher3 teacher = new AccpTeacher3(); teacher.setName (李芳); teacher.setAge(10); System.out.println(rod

35、uction(); ,使用封裝,增加了數(shù)據(jù)訪(fǎng)問(wèn)限制,增強(qiáng)了程序的可維護(hù)性,錯(cuò)誤!最小年齡應(yīng)為22歲! 大家好!我是李芳,我今年22歲,測(cè)試類(lèi)通過(guò)調(diào)用setter方法,為對(duì)象的各個(gè)屬性賦值,84,什么是構(gòu)造方法,構(gòu)造方法負(fù)責(zé)對(duì)象成員的初始化工作,為實(shí)例變量賦予合適的初始值 構(gòu)造方法必須滿(mǎn)足以下語(yǔ)法規(guī)則: 1、方法名與類(lèi)名相同 2、沒(méi)有返回類(lèi)型,public class Teacher5 private String name; / 教員姓名 / 構(gòu)造方法 public Teacher5() name = 無(wú)名氏; ,Public Teacher5Test public static void m

36、ain(String args) Teacher5 teacher = new Teacher5(); ,使用new關(guān)鍵字調(diào)用構(gòu)造方法,85,帶參數(shù)的構(gòu)造方法,通過(guò)帶參數(shù)的構(gòu)造方法,顯式地為實(shí)例變量賦予初始值,public class Teacher6 private String name; / 教員姓名 private int age; / 年齡 private String education; / 學(xué)歷 private String position; / 職位 / 帶參數(shù)的構(gòu)造方法 Public Teacher6(String pName,int pAge,String pEduca

37、tion,String pPosition) name = pName; age = pAge; / 可以增加對(duì)age等屬性的存取限制條件 education = pEducation; position = pPosition; public String introduction() return 大家好!我是 + name + ,我今年 + age + 歲,學(xué)歷 + education + ,目前職位是+position; ,86,帶參數(shù)的構(gòu)造方法,通過(guò)調(diào)用帶參數(shù)的構(gòu)造方法,簡(jiǎn)化對(duì)象初始化的代碼,public class Teacher6Test public static void m

38、ain(String args) Teacher6 teacher = new Teacher6(李芳, 23, 本科, 咨詢(xún)師); System.out.println(roduction(); ,創(chuàng)建對(duì)象時(shí),一并完成了對(duì)象成員的初始化工作,大家好!我是李芳,我今年23歲,學(xué)歷本科,目前職位是咨詢(xún)師,87,生活中的方法重載,類(lèi),方法,方法參數(shù),方法實(shí)現(xiàn),司機(jī),轎車(chē),巴士,火車(chē),駕駛,啟動(dòng)、行駛、,等待乘客上車(chē)、啟動(dòng)、 行駛、到站停車(chē)、,正點(diǎn)發(fā)車(chē)、行駛、 到站停車(chē)、,如果用代碼實(shí)現(xiàn),我們需要三個(gè)方法,這些方法的方法名稱(chēng)相同,參數(shù)類(lèi)型不同,88,方法重載必須滿(mǎn)足的條件,重載

39、方法必須滿(mǎn)足以下條件: 方法名相同。 方法的參數(shù)類(lèi)型、個(gè)數(shù)、順序至少有一項(xiàng)不相同。 方法的返回類(lèi)型可以不相同。 方法的修飾符可以不相同。 調(diào)用重載方法時(shí),Java 使用參數(shù)的類(lèi)型和數(shù)量決定實(shí)際調(diào)用重載方法的哪個(gè)版本。,89,方法重載的代碼示例 1,方法重載并不陌生 java.io.PrintStream類(lèi)的println方法能夠打印數(shù)據(jù)并換行,根據(jù)數(shù)據(jù)類(lèi)型的不同, 有多種實(shí)現(xiàn)方式,public class Test public static void main(String args) int i = 0; char c = z; String str = hello; System.out

40、.println(i); System.out.println(c); System.out.println(str); ,PrintStream,println(int) println(char) println(String) ,方法名相同,參數(shù)類(lèi)型不同,調(diào)用不同的println方法,方法重載,90,生活中的繼承,生活中,繼承的例子隨處可見(jiàn),動(dòng)物,食草動(dòng)物,食肉動(dòng)物,誰(shuí)是父類(lèi)? 誰(shuí)是子類(lèi)? 能說(shuō)出繼承的特點(diǎn)嗎?,繼承需要符合的關(guān)系:is-a,父類(lèi)更通用、子類(lèi)更具體,91,生活中的繼承,子類(lèi)具有父類(lèi)的一般特性(包括屬性和行為),以及自身特殊的特性,巴士是汽車(chē)嗎? 卡車(chē)是汽車(chē)嗎? 出租車(chē)是汽

41、車(chē)嗎?,汽車(chē),92,為什么要使用繼承 ?,使用繼承,可以有效實(shí)現(xiàn)代碼復(fù)用,93,如何實(shí)現(xiàn)繼承,在Java語(yǔ)言中,用extends關(guān)鍵字來(lái)表示一個(gè)類(lèi)繼承了另一個(gè)類(lèi),例如:,public class JavaTeacher2 extends Teacher /其余代碼省略 ,在父類(lèi)中只定義一些通用的屬性與方法,例如:,public class Teacher private String name; / 教員姓名 private String school; / 所在中心 public AccpTeacher(String myName, String mySchool) /初始化屬性值 publ

42、ic void giveLesson() /授課方法的具體實(shí)現(xiàn) public void introduction() /自我介紹方法的具體實(shí)現(xiàn) ,94,如何實(shí)現(xiàn)繼承,子類(lèi)自動(dòng)繼承父類(lèi)的屬性和方法,子類(lèi)中可以定義特定的屬性和方法,public class Teacher private String name; / 教員姓名 private String school;/ 所在中心 public AccpTeacher (String myName, String mySchool) /初始化屬性值 public void giveLesson() /授課方法的具體實(shí)現(xiàn) public void

43、introduction() /自我介紹方法的具體實(shí)現(xiàn) ,public class JavaTeacher2 extends Teacher public AccpJavaTeacher2(String myName, String mySchool) super(myName, mySchool); public void giveLesson() System.out.println(啟動(dòng)Eclipse); super.giveLesson(); ,由于giveLesson()方法與父類(lèi)的實(shí)現(xiàn)有所不同,因此重寫(xiě)了該方法,方法重寫(xiě):子類(lèi)和父類(lèi)的方法具有相同的名稱(chēng)、參數(shù)列表、返回類(lèi)型,父類(lèi)中的

44、屬性和方法可以被子類(lèi)繼承,95,public class JavaTeacher2 extends Teacher Public JavaTeacher2(String myName, String mySchool) super(myName, mySchool); ,如何實(shí)現(xiàn)繼承,子類(lèi)的構(gòu)造方法中,通過(guò)super關(guān)鍵字調(diào)用父類(lèi)的構(gòu)造方法,方法重寫(xiě)后,通過(guò)super關(guān)鍵字調(diào)用父類(lèi)的方法,public class JavaTeacher2 extends Teacher public void giveLesson() System.out.println(啟動(dòng) Eclipse); super

45、.giveLesson(); ,通過(guò)調(diào)用父類(lèi)的構(gòu)造方法,完成對(duì)屬性值的初始化,96,一切類(lèi)的“祖先”O(jiān)bject,在Java 中,所有的Java類(lèi)都直接或間接地繼承了java.lang.Object類(lèi),public class MyObject / ,public class MyObect extends Object / ,在Eclipse中調(diào)用MyObject對(duì)象的成員,會(huì)自動(dòng)彈出繼承自O(shè)bject的所有方法,97,什么是多態(tài),簡(jiǎn)單來(lái)說(shuō),多態(tài)是具有表現(xiàn)多種形態(tài)的能力的特征 同一個(gè)實(shí)現(xiàn)接口,使用不同的實(shí)例而執(zhí)行不同操作,彩色打印機(jī),打印機(jī),黑白打印機(jī),打印效果:彩色,打印效果:黑白,打印,

46、打印,98,public class Teacher public void giveLesson() System.out.println(知識(shí)點(diǎn)講解); System.out.println(總結(jié)提問(wèn)); ,如何實(shí)現(xiàn)多態(tài),1、子類(lèi)重寫(xiě)父類(lèi)的方法 2、編寫(xiě)方法時(shí),使用父類(lèi)定義的方法 3、運(yùn)行時(shí),根據(jù)實(shí)際創(chuàng)建的對(duì)象類(lèi)型動(dòng)態(tài)決定使用哪個(gè)方法,99,什么是Java接口,一個(gè)Java接口是一些方法特征的集合,但沒(méi)有方法的實(shí)現(xiàn),public interface PCI public void start(); public void stop();,class SoundCard implements

47、 PCI public void start() System.out.println(Du du.); public void stop() System.out.println(Sound stop!); ,Java接口中定義的方法在不同的地方被實(shí)現(xiàn),可以具有完全不同的行為,這是Java接口,相當(dāng)于主板上的PCI插槽的規(guī)范,class NetworkCard implements PCI public void start() System.out.println(Send.); public void stop() System.out.println(Network stop!); ,

48、100,什么是Java接口,public class Assembler public static void main(String args) PCI nc = new NetworkCard(); PCI sc = new SoundCard(); nc.start(); sc.start(); ,可以使用Java接口標(biāo)識(shí)類(lèi)型 運(yùn)行時(shí),根據(jù)實(shí)際創(chuàng)建的對(duì)象類(lèi)型調(diào)用相應(yīng)的方法實(shí)現(xiàn),Du du. Send.,控制臺(tái)輸出,2,1,101,多態(tài)與接口的區(qū)別,相同點(diǎn):都是為了實(shí)現(xiàn)程序的可擴(kuò)展和可維護(hù)性. 不同點(diǎn): 多態(tài):指實(shí)現(xiàn)同一個(gè)接口,使用不同的實(shí)例而執(zhí)行不同的操作,必須存在繼承關(guān)系. 接口:存在

49、共同的方法特征,但對(duì)方法有各自不同的實(shí)現(xiàn),不必存在繼承關(guān)系.,102,this 關(guān)鍵字,用于任何實(shí)例方法內(nèi),指向當(dāng)前對(duì)象 this 的值指向?qū)ζ湔{(diào)用當(dāng)前方法的對(duì)象 this 關(guān)鍵字可在需要當(dāng)前類(lèi)類(lèi)型的對(duì)象引用時(shí)使用,this 關(guān)鍵字的示例,class Pixel int x; int y; void init (int x, int y) this.x = x; this.y = y; public static void main (String args) Pixel p = new Pixel(); p.init (4,3); ,104,什么是常量,常量是一種標(biāo)識(shí)符,它的值在運(yùn)行期間恒定

50、不變 常量標(biāo)識(shí)符在程序中只能被引用,而不能被重新賦值,105,Java中常量的定義規(guī)則,加入final 關(guān)鍵字代表常量, 加入static 關(guān)鍵字代表類(lèi)變量 盡量使用含義直觀的常量來(lái)表示那些將在程序中多次出現(xiàn)的數(shù)字或字符串,public class Student public static final int FEMALE = 1; /代表女性 public static final int MALE = 2; /代表男性 private int sex; /性別 public void setSex(int sex) if(sex=FEMALE) System.out.println(這是

51、一名女學(xué)生); else if(sex = MALE) System.out.println(這是一名男學(xué)生); this.sex = sex; ,106,在Java接口中聲明常量,在Java 接口中聲明的變量在編譯時(shí)會(huì)自動(dòng)加上static final的修飾符,即聲明為常量, 因而Java接口通常是存放常量的最佳地點(diǎn),public interface SchoolType public static final String school1 = “國(guó)立大學(xué); public static final String school2 = “民辦大學(xué); ,public interface School

52、Type String school1 = “國(guó)立大學(xué); String school2= “民辦大學(xué); ,等同于,107,OO思想總結(jié),108,訪(fǎng)問(wèn)修飾符,信息隱藏是 OOP 最重要的功能之一,也是使用訪(fǎng)問(wèn)修飾符的原因 信息隱藏的原因包括: 對(duì)任何實(shí)現(xiàn)細(xì)節(jié)所作的更改不會(huì)影響使用該類(lèi)的代碼 防止用戶(hù)意外刪除數(shù)據(jù) 此類(lèi)易于使用,訪(fǎng)問(wèn)修飾符,109,訪(fǎng)問(wèn)修飾符,110,訪(fǎng)問(wèn)修飾符,訪(fǎng)問(wèn)修飾符可訪(fǎng)問(wèn)性,111,方法修飾符,112,static 修飾符,static修飾符修飾的方法叫靜態(tài)方法 目的 使該方法獨(dú)立于類(lèi)的實(shí)例,使用類(lèi)去訪(fǎng)問(wèn),而不是類(lèi)實(shí)例,所以也叫類(lèi)方法,113,static 修飾符,調(diào)用靜態(tài)

53、方法的語(yǔ)法為: classname.methodname( );,114,final 修飾符,115,abstract 修飾符,由abstract修飾的方法叫抽象方法;由abstract修飾的類(lèi)叫抽象類(lèi) 抽象方法必須聲明在抽象類(lèi)中 抽象方法語(yǔ)法: abstract type method_name(parameter_list); 聲明抽象類(lèi)語(yǔ)法: abstract class 使用:父類(lèi)中的某些抽象不包含任何邏輯,并需要在子類(lèi)中重寫(xiě),子類(lèi)提供這種抽象方法的實(shí)現(xiàn)細(xì)節(jié),116,abstract 修飾符,抽象類(lèi)可以具有指向子類(lèi)對(duì)象的對(duì)象引用,117,JAVA小應(yīng)用程序-Java Applet,它是

54、嵌入在Web頁(yè)上供瀏覽器運(yùn)行的程序,也可放在服務(wù)器上供客戶(hù)端下載使用, 每個(gè)小應(yīng)用程序繼承java.applet.Applet 一、小應(yīng)用程序建立到運(yùn)行的4個(gè)步驟: 1、用Java語(yǔ)言編寫(xiě)小應(yīng)用程序的源程序。 2、小應(yīng)用程序翻譯成字節(jié)碼。 3、將小應(yīng)用程序的字節(jié)碼嵌入到Web頁(yè)中,設(shè)計(jì)一個(gè)指定小應(yīng)用程序的HTML文件 使用標(biāo)記 4、在支持Java的瀏覽器上運(yùn)行。 二、熟悉APPLET類(lèi)的基本方法作用。,什么是異常處理,Java編程語(yǔ)言使用異常處理機(jī)制為程序提供了錯(cuò)誤處理的能力,程序中預(yù)先想好了 對(duì)付異常的處理辦法,異常!,程序運(yùn)行,處理完畢,程序繼續(xù)運(yùn)行,對(duì)異常進(jìn)行處理,Java中如何進(jìn)行異常

55、處理,Java的異常處理是通過(guò)5個(gè)關(guān)鍵字來(lái)實(shí)現(xiàn)的:try、catch、 finally、throw、throws,捕獲異常,catch,try,finally,執(zhí)行可能產(chǎn)生 異常的代碼,捕獲異常,無(wú)論是否發(fā)生異常, 代碼總能執(zhí)行,手動(dòng)拋出異常,拋出異常,throw,聲明異常,聲明方法可能要 拋出的各種異常,throws,Java 語(yǔ)言程序設(shè)計(jì)(一)串講,主講人:周立民 更多優(yōu)質(zhì)自考資料盡在百度貼吧自考樂(lè)園俱樂(lè)部(,第四章 數(shù)組和字符串,本章重點(diǎn) 數(shù)組的應(yīng)用 字符串常用方法 字符串與基本類(lèi)型數(shù)據(jù)之間的轉(zhuǎn)換,數(shù)組定義,數(shù)組是一個(gè)變量,存儲(chǔ)相同數(shù)據(jù)類(lèi)型的一組數(shù)據(jù),int類(lèi)型,元素,博物架名,標(biāo)識(shí)符,

56、古玩,物品編號(hào),元素下標(biāo),物品類(lèi)型,元素類(lèi)型,數(shù)據(jù),使用數(shù)組四步走: 1、聲明數(shù)組 2、分配空間 3、賦值 4、處理數(shù)據(jù),如何使用數(shù)組,int a;,a = new int5;,a 0 = 8;,a 0 = a0 * 10;,a,8,80,a0,數(shù)組的聲明,int score1; /Java成績(jī) int score2 ; /C#成績(jī) String name; /學(xué)生姓名,聲明數(shù)組: 告訴計(jì)算機(jī)數(shù)據(jù)類(lèi)型是什么,1,數(shù)據(jù)類(lèi)型 數(shù)組名 ;,數(shù)據(jù)類(lèi)型 數(shù)組名 ;,數(shù)組初始化,score = new int30; avgAge = new int6; name = new String30;,30,分配

57、空間: 告訴計(jì)算機(jī)分配幾個(gè)格子,數(shù)組屬于引用數(shù)據(jù)類(lèi)型,2,數(shù)據(jù)類(lèi)型 數(shù)組名 = new 數(shù)據(jù)類(lèi)型大小 ;,聲明數(shù)組并分配空間,數(shù)組賦值,score0 = 89; score1 = 79; score2 = 76; ,賦值:向分配的格子里放數(shù)據(jù),30,score0,score1,score2,89,79,76,太麻煩!能不能一起賦值?,3,數(shù)組賦值,方法1: 邊聲明邊賦值 方法2:動(dòng)態(tài)地從鍵盤(pán)錄入信息并賦值,解決,int score = 89, 79, 76;,Scanner input = new Scanner(System.in); for(int i = 0; i 30; i +) scorei = input.

溫馨提示

  • 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)論