Java語言程序設計(一)串講.ppt_第1頁
Java語言程序設計(一)串講.ppt_第2頁
Java語言程序設計(一)串講.ppt_第3頁
Java語言程序設計(一)串講.ppt_第4頁
Java語言程序設計(一)串講.ppt_第5頁
已閱讀5頁,還剩354頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

3、關 6、安全性 7、分布式計算 8、多線程,五、JAVA程序的開發(fā)過程:三步走,1、編寫源程序,2、編譯源程序,3、運行,第一個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課程); ,關鍵字高亮顯示,類名與文件名完全一樣,main方法是Java程序執(zhí)行的入口點,和

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

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

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

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

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

9、多個,可以省略,多重if結構,switch (表達式) case 常量 1: 語句; break; case 常量 2: 語句; break; default: 語句; ,switch結構,什么是switch結構,計算表達式的值,如果等于常量1,如果等于常量2,如果沒有找到匹配的值,常見錯誤,int mingCi = 1; switch (mingCi) case 1: System.out.println(出任武林盟主); case 2: System.out.println(出任武當掌門); case 3: System.out.println(出任峨嵋掌門); default: Syst

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

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

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

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

14、args) int i = 0; while ( i 5 ) System.out.println(“歡迎新同學); i +; ,注意:如果一開始條件就不滿足,while循環(huán)一次都不執(zhí)行,i 5,一次都沒有打印,哪里出錯了?,什么是do-while循環(huán),do 循環(huán)操作 while ( 循環(huán)條件 );,先執(zhí)行一遍循環(huán)操作,符合條件,循環(huán)繼續(xù)執(zhí)行;否則,循環(huán)退出,特點:先執(zhí)行,再判斷,while循環(huán)和do-while循環(huán)的區(qū)別 語法不同 初始情況不滿足循環(huán)條件時 while循環(huán)一次都不會執(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)的語法和執(zhí)行順序,什么是for循環(huán),for( ; ; ) ; ,條件為true,循環(huán)體被執(zhí)行,for ( int i = 0 ; i 100 ; i+ ) System.out.println(我最棒); ,代碼規(guī)范:格式對齊、代碼的縮進,表達式1,表達式2,表達式3,循環(huán)操作,參數(shù)初始化,條件判斷,更新循環(huán)變量,1,2,4,3,for循環(huán)常見問題,for(;i10;i+) System.out.println(這是 +i); ,int i=0;,編譯錯誤: 變量 i 沒有初始化,for(

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

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

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

19、問題考慮使用 循環(huán)來解決,循環(huán)總結,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相同,先進行判斷,后執(zhí)行循環(huán)體內容 do-while是先執(zhí)行,后判斷,至少執(zhí)行一次,指出各種循環(huán)結構的執(zhí)行順序,控制流語句小結,順序結構:語句順序執(zhí)行 分支結構:語句在滿足條件下執(zhí)行 if, if-else, if

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

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

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

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

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

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

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

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

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

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

30、); ,a的作用域僅在for循環(huán)中,代碼錯誤,變量作用域,變量1類型 變量1; 變量2類型 變量2; 變量3類型 變量3;,public 返回類型 方法1() 變量4類型 變量4; public 返回類型 方法2() 變量5類型 變量5; ,public class AutoLion,AutoLion類的方法 別的類的方法,誰能使用這些變量?,方法1,方法2,成員變量,局部變量,局部變量,面向對象的編程思維,ScoreCalc類 和 Test類,public static void main(String args) Scanner input = new Scanner(System.in)

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

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

33、r方法訪問name屬性,this代表當前類的實例,82,如何實現(xiàn)封裝,封裝的實現(xiàn): 1、修改屬性的可見性來限制對屬性的訪問 2、為每個屬性創(chuàng)建一對賦值(setter)方法和取值(getter) 方法,用于對這些屬性的訪問 3、在setter和getter方法中,加入對屬性的存取限制,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(錯誤!最小年齡應為22歲!); this.age = 22; /如果不符合年齡要求,則賦予默認值 else this.age = age; /此處省略對name屬性的setter、getter方法 ,1,2,3,83,如何實現(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ù)訪問限制,增強了程序的可維護性,錯誤!最小年齡應為22歲! 大家好!我是李芳,我今年22歲,測試類通過調用setter方法,為對象的各個屬性賦值,84,什么是構造方法,構造方法負責對象成員的初始化工作,為實例變量賦予合適的初始值 構造方法必須滿足以下語法規(guī)則: 1、方法名與類名相同 2、沒有返回類型,public class Teacher5 private String name; / 教員姓名 / 構造方法 public Teacher5() name = 無名氏; ,Public Teacher5Test public static void m

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

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

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

39、方法必須滿足以下條件: 方法名相同。 方法的參數(shù)類型、個數(shù)、順序至少有一項不相同。 方法的返回類型可以不相同。 方法的修飾符可以不相同。 調用重載方法時,Java 使用參數(shù)的類型和數(shù)量決定實際調用重載方法的哪個版本。,89,方法重載的代碼示例 1,方法重載并不陌生 java.io.PrintStream類的println方法能夠打印數(shù)據(jù)并換行,根據(jù)數(shù)據(jù)類型的不同, 有多種實現(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ù)類型不同,調用不同的println方法,方法重載,90,生活中的繼承,生活中,繼承的例子隨處可見,動物,食草動物,食肉動物,誰是父類? 誰是子類? 能說出繼承的特點嗎?,繼承需要符合的關系:is-a,父類更通用、子類更具體,91,生活中的繼承,子類具有父類的一般特性(包括屬性和行為),以及自身特殊的特性,巴士是汽車嗎? 卡車是汽車嗎? 出租車是汽

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

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

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

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

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

46、打印,98,public class Teacher public void giveLesson() System.out.println(知識點講解); System.out.println(總結提問); ,如何實現(xiàn)多態(tài),1、子類重寫父類的方法 2、編寫方法時,使用父類定義的方法 3、運行時,根據(jù)實際創(chuàng)建的對象類型動態(tài)決定使用哪個方法,99,什么是Java接口,一個Java接口是一些方法特征的集合,但沒有方法的實現(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接口中定義的方法在不同的地方被實現(xiàn),可以具有完全不同的行為,這是Java接口,相當于主板上的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接口標識類型 運行時,根據(jù)實際創(chuàng)建的對象類型調用相應的方法實現(xiàn),Du du. Send.,控制臺輸出,2,1,101,多態(tài)與接口的區(qū)別,相同點:都是為了實現(xiàn)程序的可擴展和可維護性. 不同點: 多態(tài):指實現(xiàn)同一個接口,使用不同的實例而執(zhí)行不同的操作,必須存在繼承關系. 接口:存在

49、共同的方法特征,但對方法有各自不同的實現(xiàn),不必存在繼承關系.,102,this 關鍵字,用于任何實例方法內,指向當前對象 this 的值指向對其調用當前方法的對象 this 關鍵字可在需要當前類類型的對象引用時使用,this 關鍵字的示例,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,什么是常量,常量是一種標識符,它的值在運行期間恒定

50、不變 常量標識符在程序中只能被引用,而不能被重新賦值,105,Java中常量的定義規(guī)則,加入final 關鍵字代表常量, 加入static 關鍵字代表類變量 盡量使用含義直觀的常量來表示那些將在程序中多次出現(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、一名女學生); else if(sex = MALE) System.out.println(這是一名男學生); this.sex = sex; ,106,在Java接口中聲明常量,在Java 接口中聲明的變量在編譯時會自動加上static final的修飾符,即聲明為常量, 因而Java接口通常是存放常量的最佳地點,public interface SchoolType public static final String school1 = “國立大學; public static final String school2 = “民辦大學; ,public interface School

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

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

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

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

56、古玩,物品編號,元素下標,物品類型,元素類型,數(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成績 int score2 ; /C#成績 String name; /學生姓名,聲明數(shù)組: 告訴計算機數(shù)據(jù)類型是什么,1,數(shù)據(jù)類型 數(shù)組名 ;,數(shù)據(jù)類型 數(shù)組名 ;,數(shù)組初始化,score = new int30; avgAge = new int6; name = new String30;,30,分配

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

溫馨提示

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

評論

0/150

提交評論