JAVA期末考前復(fù)習要點_第1頁
JAVA期末考前復(fù)習要點_第2頁
JAVA期末考前復(fù)習要點_第3頁
JAVA期末考前復(fù)習要點_第4頁
JAVA期末考前復(fù)習要點_第5頁
已閱讀5頁,還剩121頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

面向?qū)ο蟮某绦蛟O(shè)計上海財經(jīng)大學信息管理與工程學院考前復(fù)習2017考試題型判斷題〔2分*10個,共計20分〕不定項選擇題〔2分*15個,共計30分〕程序閱讀題〔5分*5個,共計25分〕編程題〔3個答題,合計25分〕重點在于復(fù)習課上指出的有關(guān)例題2考核范圍以課堂PPT為藍本,以郎波老師的教材為根底。不考或少考:數(shù)據(jù)庫不考內(nèi)容:Applet、JSP、JS3主要考核知識點第一局部消息:定義、情況及構(gòu)成Java可以跨平臺的原因:JVMApplication程序創(chuàng)立過程:編譯—javac.exe解釋執(zhí)行—java.exe聚合、關(guān)聯(lián),以及兩者之間的關(guān)系。4主要考核知識點第三局部1標識符定義規(guī)那么數(shù)據(jù)類型之間的互相轉(zhuǎn)換:自動轉(zhuǎn)換強制轉(zhuǎn)換數(shù)組類型、長度、內(nèi)容和地址之間的關(guān)系數(shù)組的初始化5主要考核知識點第三局部2局部變量和類成員變量的初始化常見數(shù)據(jù)類型根本數(shù)據(jù)類型:復(fù)合數(shù)據(jù)類型:類類型、String、數(shù)組常量邏輯型整型、浮點型字符型:轉(zhuǎn)義字符6數(shù)據(jù)類型的級別與類型轉(zhuǎn)換運算Java中數(shù)據(jù)的根本類型〔不包括邏輯類型〕按精度從“低”到“高”排列:byteshortcharintlongfloatdouble★當把級別低的變量的值賦給級別高的變量時,系統(tǒng)自動完成數(shù)據(jù)類型的轉(zhuǎn)換。例如:floatx=100;

★當把級別高的變量的值賦給級別低的變量時,必須使用顯示類型轉(zhuǎn)換運算。顯示轉(zhuǎn)換的格式:〔類型名〕要轉(zhuǎn)換的值;例如intx=(int)34.89;★當把一個int型常量賦值給一個byte和short型變量時,不可以超出這些變量的取值范圍,否那么必須進行類型轉(zhuǎn)換運算; 例如:bytea=(byte)128;//byte取值范圍為:-128~+127〔即,-27~27-1〕

7整型變量可自動轉(zhuǎn)化為浮點型這個轉(zhuǎn)化可能會導(dǎo)致?lián)p失精度〔浮點型有特定的精度〕雖然long是8字節(jié),float是4字節(jié),但仍然可以將long自動轉(zhuǎn)化為float。8boolean不能和其他類型轉(zhuǎn)換9引用類型變量引用類型變量存儲的是其對應(yīng)對象的地址,而不是該對象的值。在Java中,除根本類型以外的變量均為引用類型變量用戶自己定義的類的變量都是引用類型變量。10數(shù)組數(shù)組中的元素都是同一種類型。數(shù)組的長度在創(chuàng)立〔不是在聲明時指定〕的時候確定,并且在創(chuàng)立后固定不變。數(shù)組的聲明inta[];Date[]d;數(shù)組的創(chuàng)立使用new創(chuàng)立:a=newint[10];使用初始值創(chuàng)立:String[]a={"aa","bb"};數(shù)組變量是引用型:存儲的是數(shù)組內(nèi)容所在內(nèi)存空間的地址。數(shù)組元素索引從0開始:String[]a={"aa","bb"}a[0]="aa",a[1]="bb"參考書本p.59~6011數(shù)組關(guān)于數(shù)組聲明表示數(shù)組的"[]

"在數(shù)組變量之后 //C、C++和Java通用的標準格式inta[];Dated[];參考書本p.59~60表示數(shù)組的"[]"

在數(shù)組類型之后表示數(shù)組標志"[]"之后出現(xiàn)的所有變量都將是數(shù)組變量 //Java特有的格式int[]a;char[]s,m,n;//聲明了3個字符型數(shù)組變量s、m和n。聲明不創(chuàng)立數(shù)據(jù)空間,僅僅分配一個引用空間。12數(shù)組關(guān)于數(shù)組聲明參考書本p.59~60聲明二維數(shù)組有以下兩種格式:數(shù)組的元素類型數(shù)組名[][];數(shù)組的元素類型[][]數(shù)組名;例如:floata[][];Char[][]b;13數(shù)組的初始化使用初始值直接初始化

int[]a={1,2,3,4,5};Date[]d={newDate(),newDate(),newDate()};先聲明后初始化inta[];a=newint[10];

Dated[];d=newDate[3];在聲明的同時初始化

inta[]=newint[10];

Dated[]=newDate[3];數(shù)組的長度在創(chuàng)立時就固定了。如果要在Java中建立長度可以動態(tài)變化的"數(shù)組",可以使用List類。14String類String類在java.lang包中Java把String類聲明為final類,因此不能擴展String類。即String類不可以有子類。由于java.lang包中的類被默認引入,因此程序可直接使用String類。注意15構(gòu)造字符串對象1.字符串常量對象:用西文字符雙引號括起的字符序列。2.字符串對象聲明:Strings;創(chuàng)立字符串對象:s=newString("wearestudents");例如:"你好"、"12.97"、"boy"等。String類較常用構(gòu)造方法:String(s),String(chara[]),String(chara[],intstartIndex,intcount)

startIndex和count分別指定提取字符的起始位置以及從該位置開始截取的字符個數(shù)。

例如:chara[]={'J','a','v','a'};Strings=newString(a);

例如:chara[]={'零','壹','貳','叁','肆','伍','陸','柒','捌','玖'};Strings=newString(a,2,4);

相當于:Strings=newString(''貳叁肆伍'');

16構(gòu)造字符串對象3.引用字符串常量對象

Strings1,s2;

s1="howareyou";

s2="howareyou";s1,s2具有相同的引用,故具有相同的實體。17String類的常用方法1.publicintlength():獲取一個字符串的長度

2.publicbooleanequals(Strings):比較當前字符串對象實體的值是否與參數(shù)s指定的字符串實體的值相同如果:那么:tom.equals(boy)的值為false,tom.equals(jerry)的值為ture。但是:tom==jerry的值為false。〔判斷是否有相同的引用〕因為字符串對象tom、jerry具有相同的引用值,但引用的字符串對象不同。tom0x54C78天道酬勤boy0xBc66知心朋友jerry0xAb98天道酬勤18String類的常用方法例題8_1說明了equals的用法。19主要考核知識點第三局部3流程控制順序:按語句書寫的先后順序執(zhí)行分支:在假設(shè)干路徑中有條件地擇一執(zhí)行循環(huán):當某條件成立時,反復(fù)執(zhí)行一段代碼20分支〔選擇〕語句if語句if〔條件表達式〕語句組;if〔條件表達式〕語句組1;

else語句組2;語句組:用大括號括起的語句集合else與最近的if配合,用來消除二義性if條件A{if條件B{

語句組1//A&B

}else{語句組2//A&(!B)

}}21分支〔選擇〕語句〔續(xù)〕嵌套的if-else-if

if(expression) statement; elseif(expression) statement; elseif(expression) ………………. else statement;

if(expression) statement;

else{

if(expression) statement; elseif(expression) ………………. else statement;}22嵌套if-else-if例如例:績點計算ji_dian=2.0運算結(jié)果:23for循環(huán)語句for循環(huán)語句的語法格式:for(表達式1;表達式2;表達式3){假設(shè)干語句}for語句的執(zhí)行規(guī)那么是:〔1〕計算“表達式1”,完成必要的初始化工作。〔2〕判斷“表達式2”的值,假設(shè)“表達式2”的值為true,那么進行〔3〕,否那么進行〔4〕。〔3〕執(zhí)行循環(huán)體,然后計算“表達式3”,以便改變循環(huán)條件,進行〔2〕?!?〕結(jié)束for語句的執(zhí)行。

24Java的循環(huán)語句:for〔續(xù)〕求表達式1(j=0)求表達式2(j<10)求表達式3(j++)False循環(huán)體Truefor(j=0;j<10;j++〕 循環(huán)體語句組;25算術(shù)運算符二元算術(shù)〔雙目〕運算符:+,-,×,/,%“+”可連接字符串“He”+“l(fā)lo”為“Hello”整型、浮點進行混合運算時,不同類型的數(shù)據(jù)首先轉(zhuǎn)換為同一類型,然后進行運算,低級數(shù)據(jù)類型自動轉(zhuǎn)化為高級數(shù)據(jù)類型。注:全是byte或short型操作數(shù),結(jié)果也是int型;26++/--運算符用法功能描述++op++op加1;先求op的值,再把op加1++++opop加1;先把op加1,再求op的值--op--op減1;先求op的值,再把op減1----opop減1;先把op減1,再求op的值27運算符擴展賦值運算符二元運算符:@=,a@=b即a=a@b〔@為+,-,*,/,%) a+=ba=a+b;運算符的優(yōu)先級一般原那么:算術(shù)運算符>關(guān)系運算符>邏輯運算符括號最優(yōu)先28主要考核知識點第三局部4面向?qū)ο缶幊谈?9Java中的OOP回憶幾個概念類:抽象的集合概念系統(tǒng)類庫中已定義好的類用戶自定義的類對象(實例,instance):實際個體創(chuàng)立某個類的具體對象(類似變量聲明)類名欲創(chuàng)立的對象名=new類名(參數(shù)表);例如:Strings=newString(“Hello!”);Dated=newDate(2007,07,30);繼承、子類、父類子類是父類的特例,繼承了父類的變量和方法;30完整程序一個java文件最多只有一個public類,這個類稱為主類,與java文件名相同。31Java中類的聲明類修飾符〔Modifier〕public:允許其他類〔沒有限制〕訪問本類缺?。嚎杀划斍鞍械钠渌愒L問abstract:沒有實例的抽象類,只能創(chuàng)立其子類的實例。目的:使類的結(jié)構(gòu)清晰,實現(xiàn)多態(tài)。final:不能再被擴展,不包含子類的類;易于平安性的實現(xiàn),或用于創(chuàng)立固定功能的類;父類繼承聲明:extends父類名實現(xiàn)接口(interface):implements接口32成員變量的聲明聲明成員變量〔member〕的語法成員變量:在類體中聲明,但不屬于任何一個方法。[修飾符]數(shù)據(jù)類型變量名;33修飾符:訪問控制符成員變量的訪問控制符public:可被所有其他類訪問protected:該類自身、子類、同一包中的其他類缺?。嚎杀槐景械念愒L問private:僅可被該類自身訪問和修改,不能被其他任何類〔包括子類〕訪問34修飾符〔續(xù)〕static:類成員變量(靜態(tài)變量)對所有的實例一致引用時前綴可使用類名或?qū)ο竺鹒inal:程序中不能修改其值即常量,定義的同時應(yīng)對其進行初始化35成員變量的聲明例如

classCircle{

privatefloatradius;

protectedfloatarea;

staticfloatmaxArea=100.0f;

finalfloatPI=3.1415926f;

……..}static屬性可直接通過類名引用Circle.maxArea36方法的定義方法的作用定義對類的成員變量(數(shù)據(jù))的操作方法的定義語法:[修飾符]返回類型方法名〔參數(shù)列表〕[throws異常名]{方法體;}聲明內(nèi)容方法的性質(zhì)、接受哪些參數(shù)、返回什么信息方法聲明部分方法體部分37方法的聲明修飾符訪問控制符public,protected,缺省,privatestatic:靜態(tài)方法,又稱類方法。使用類名或?qū)ο竺鳛榍熬Y,建議使用類名作前綴在static型的方法體中,只能訪問static變量和自身局部變量優(yōu)點:不必對類實例化操作就能被其他類使用該方法??砷_發(fā)通用工具,如數(shù)學計算:Math.sqrt()abstract:只有方法名,沒有方法體。要在子類中通過重新定義〔override〕來實現(xiàn)final:不能被子類所重新定義〔override〕38方法的聲明〔續(xù)〕返回類型:方法內(nèi)return語句返回值的類型、void〔無返回值〕參數(shù)列表:參數(shù)類型可為根本類型或引用類型throws:通告本方法中會產(chǎn)生的例外〔異?!愁愋吞嵝颜{(diào)用者要對相應(yīng)的可能例外進行處理。當執(zhí)行此方法并發(fā)生了例外時,程序會轉(zhuǎn)入調(diào)用者編制的例外處理程序段。39例外觸發(fā)例如40方法體在方法體中定義的變量稱為局部變量。生命周期:程序流執(zhí)行進入方法體時創(chuàng)立,程序流退出方法時撤消。局部變量使用之前必須初始化。局部變量名假設(shè)與類的成員變量名相同,那么成員變量被隱藏??捎胻his顯示相應(yīng)的成員變量。41方法體〔續(xù)〕在方法體中可訪問本類所有的類變量,并可調(diào)用本類中定義的非靜態(tài)方法。static方法只能直接調(diào)用本類的static方法和static變量。static方法無法引用非static的成員變量numstatic方法可以用類名直接調(diào)用42方法的參數(shù)方法的參數(shù)要“有名有型”參數(shù)的作用域在本方法中可像方法內(nèi)的局部變量一樣使用。方法調(diào)用中,根本類型參數(shù)是值傳送;引用類型參數(shù)是地址傳送。43值傳送與地址傳送引用類型地址傳送基本類型值傳送3.143.14AB0x2F0x2FCD方法定義:voidmethod1(intA)voidmethod2(StringC)方法調(diào)用:instance.method1(B)instance.method2(D)A,C是形參B,D是實參44構(gòu)造方法構(gòu)造方法與類同名,且不聲明返回類型。在創(chuàng)立每個新對象時自動執(zhí)行以保證新對象的各成員都有合法、確定的初值。Java試圖在每個對象一誕生時,就給它一個指定的狀態(tài)〔即成員變量的初值〕,但有時系統(tǒng)的缺省初值并不適宜;所以在創(chuàng)立一個新對象時,需用構(gòu)造方法完成合法的初始化,使成員變量的初始化工作不依賴于外界〔系統(tǒng)〕完成。45構(gòu)造方法的特點構(gòu)造方法與成員方法不同,不能被直接調(diào)用。必須通過new調(diào)用;創(chuàng)立對象時,利用運算符new在內(nèi)存中開辟專用空間,存放指定的類的實例〔即對象〕,這時會自動執(zhí)行類的構(gòu)造方法,初始化新對象的成員變量.例:Dated=newDate(22,5,2003);46構(gòu)造方法的缺省每一個類至少有一個構(gòu)造方法?!部梢杂卸鄠€,重載〕當未定義任何構(gòu)造方法時,系統(tǒng)在編譯時,會提供一個缺省〔默認〕構(gòu)造方法無參數(shù),方法體中沒有內(nèi)容缺省構(gòu)造方法的初始化數(shù)據(jù)初值:數(shù)值型:0;布爾型:false;引用型:null;

字符串型:null;一旦程序員定義了構(gòu)造方法,缺省〔默認〕構(gòu)造方法自動失效!47缺省構(gòu)造方法例如48自定義構(gòu)造方法例如1構(gòu)造方法與類同名且不聲明返回類型49自定義構(gòu)造方法例如2構(gòu)造方法與類同名且不聲明返回類型50以“this”

調(diào)用構(gòu)造方法this(參數(shù)列表)表示調(diào)用本類的構(gòu)造方法在一個構(gòu)造方法中,當使用this并給它一個參數(shù)列表時,this顯式調(diào)用參數(shù)匹配的另一個構(gòu)造方法。使用this調(diào)用本類的其他構(gòu)造方法時,this應(yīng)是第一個可執(zhí)行語句51類的繼承:Extends關(guān)鍵字Java中用extends關(guān)鍵字定義子類。publicclassEmployee{

protectedStringname;

protectedintgrade;

protectedintsalary; …}子類是從已有的類創(chuàng)立新類的一種方法。publicclassManager

extendsEmployee{

intbonus; }要使得子類直接可以訪問父類屬性,必須聲明父類屬性的訪問符為protected(或public)52類的繼承創(chuàng)立類時指明它為某類的子類extends父類名子類將繼承protected和public的所有父類成員〔可直接訪問〕private:不能被繼承缺?。撼亲宇惡透割愒谕粋€包,否那么也不能繼承Java是單繼承,不支持多繼承extends后的類名只能有一個可通過接口間接實現(xiàn)多繼承53類的繼承:擴展子類對父類可做擴展和特殊化。子類繼承父類的屬性、功能(方法)子類中只需聲明特有的東西。創(chuàng)立新的成員:屬性和方法重新定義父類中已有的屬性:父類屬性被隱藏重新定義父類中已有的方法:重寫(override)子類中的方法應(yīng)與父類中的被重寫的方法有完全相同的參數(shù)列表、返回值。54類的繼承例如重新定義屬性新添加屬性方法重寫被重寫方法的返回值、方法名、參數(shù)列表要與父類中的方法完全一樣55方法重寫規(guī)那么方法的訪問權(quán)限不能縮小。高低訪問權(quán)限56方法重寫規(guī)那么可擴大訪問權(quán)限57類的繼承:上溯造型子類對象可自動轉(zhuǎn)換成父類對象,即,父類變量可以指向子類對象,稱為上溯造型〔upcast〕,系統(tǒng)自動完成。58父類變量執(zhí)行子類方法父類變量指向子類對象,但如果要使用子類特有的方法,需要強制轉(zhuǎn)換為子類。59父類變量執(zhí)行子類重寫方法如果父類變量指向子類對象,執(zhí)行某個父類定義但被子類重寫的方法,實際執(zhí)行的代碼是子類的相應(yīng)方法。運行時多態(tài):在運行時根據(jù)對象的具體情況來決定調(diào)用的方法是父類的還是子類的。60回憶方法重載〔與重寫比照〕方法重載:同類中的同名方法參數(shù)必須不同形參的個數(shù)、類型、順序的不同返回值、修飾符可以相同,可以不同要打印不同類型的數(shù)據(jù),如int,float,String等(通過不同參數(shù)區(qū)分)voidprint(inti);voidprint(floatf);voidprint(Strings);編譯時多態(tài):由編譯器在編譯時根據(jù)參數(shù)的區(qū)別,來調(diào)用綁定方法體。61方法重寫vs方法重載區(qū)別點重載方法重寫方法參數(shù)列表必須修改不能修改返回類型可以修改不能修改異??梢孕薷牟荒軖伋鲂碌漠惓TL問可以修改不能縮小訪問權(quán)限多態(tài)編譯時運行時

62注意1:屬性無運行時多態(tài)!子類重新定義父類屬性后,父類屬性被隱藏,子類對象無法直接訪問父類屬性。如果把子類對象賦值給父類變量〔上溯造型〕,再訪問該屬性,那么將訪問到父類屬性。63注意2:static、final、private方法無運行時多態(tài)!靜態(tài)聯(lián)編〔早聯(lián)編〕:StaticBinding(EarlyBinding)Java對static、final、private方法的調(diào)用,是在運行前將方法調(diào)用和方法體連接到一起不存在運行時多態(tài)動態(tài)聯(lián)編〔晚聯(lián)編〕:DynamicBinding(LateBinding)對非static、final、private方法的調(diào)用,是在運行時才將方法調(diào)用和方法體連接到一起實現(xiàn)運行時多態(tài)的機理64上溯造型總結(jié)上溯造型中:同名方法,假設(shè)子類重寫,那么調(diào)用子類自己的,是運行時多態(tài):利用動態(tài)聯(lián)編實現(xiàn)。注意:static、final、private方法,利用靜態(tài)聯(lián)編實現(xiàn),故不存在運行時多態(tài)。同名屬性是調(diào)用父類的。一個引用類型變量如果聲明為父類的類型,但實際引用的是子類對象,那么該變量不能再訪問子類中添加的子類獨有的屬性和方法。65課堂練習);5sub66課堂練習1判斷以下哪些語句是合法的:b.f();a.j=5;a.g();b.i=3;67課堂練習2執(zhí)行結(jié)果?68課堂練習4執(zhí)行結(jié)果?69final關(guān)鍵字被定義成final的類不能有子類。final變量不在聲明時初始化會報錯final變量不能改變被定義成final的成員方法不能被重寫。被定義成final的成員變量不能改變。該變量實際上是常量,一般大寫,并必須在聲明時初始化。finalintNUMBER=100;70static關(guān)鍵詞在一些編程場景中,某些成員應(yīng)該屬于一個類,即被所有該類的對象共享。例:一個類希望通過一個成員屬性記錄程序中共生成多少個它的對象關(guān)鍵詞static可用于定義類成員〔類屬性、類方法〕,也叫做靜態(tài)成員〔靜態(tài)屬性、靜態(tài)方法〕不用static修飾的成員被稱為實例成員〔實例屬性、實例方法〕類屬性和類方法可直接通過類名訪問雖然也可以通過該類的對象訪問,但屬于不良的編程習慣,不推薦。實例屬性和實例方法必須通過該類的對象才可訪問71static方法使用注意點static方法中不能直接訪問本類的實例屬性,只能訪問static屬性、方法參數(shù)及局部變量static方法中不能直接訪問本類的實例方法,只能訪問本類的static方法如果要訪問實例屬性或?qū)嵗椒?,可在static方法中先創(chuàng)立本類的對象,再使用該對象的實例屬性或?qū)嵗椒╯tatic方法中不能訪問this引用72抽象類抽象方法:只聲明方法而沒有方法的實現(xiàn)〔方法體〕在方法聲明中,在緊接著類訪問限定詞之后增加關(guān)鍵字abstract。抽象類:在類聲明中,在緊接著類訪問限定詞之后增加關(guān)鍵字abstract。在無方法體的方法〔抽象方法〕前也要加上abstract。publicabstractclassDrawing{//抽象類 publicabstract

voiddrawDot(intx,inty);//抽象方法 publicvoiddrawLine(intx1,inty1,intx2,inty2) {…//非抽象方法}}一個abstract類可以包含有非抽象方法和變量,但至少包含一個抽象方法。73抽象類抽象類不能直接用來生成實例。一般通過定義子類進行實例化可以聲明抽象類的變量該變量可指向一個子類的實例。abstractclassEmployee{

abstractvoidraiseSalary(inti); }classManagerextendsEmployee{//抽象類的子類 voidraiseSalary(inti){….}//實現(xiàn)抽象方法 }Employeee=newManager();//指向子類實例74接口(Interface/Protocol)可看作“特殊的抽象類”一個接口定義了一組對外的公共接口〔一系列操作的組合〕只包含操作簽名Signature〔即操作名、參數(shù)類型、返回值類型〕不包含操作的具體實現(xiàn)75接口(Interface/Protocol)接口的方法需要類進行實現(xiàn)〔implements〕76Java中的接口〔Interface〕1)Java允許定義publicstaticfinal的常量〔修飾符只能寫public,static,或final,但無論怎么寫,都不會影響該變量是publicstaticfinal〕2)interface的方法,默認為publicabstract〔類在實現(xiàn)接口時,必須將實現(xiàn)的接口方法聲明為public〕A,B,C,D都是TInterface的publicstaticfinal變量思考:怎樣寫程序驗證A,B,C,D都是publicstaticfinal?其他類實現(xiàn)接口的method方法時必須聲明public,否則報錯77一個類可實現(xiàn)多個接口類可以實現(xiàn)〔implements〕多個接口如果多個接口中定義了同樣的抽象方法,在實現(xiàn)的類中實現(xiàn)一次即可。78接口之間的繼承接口可以繼承〔extends〕接口假設(shè)接口B繼承接口A類C實現(xiàn)接口B,那么需實現(xiàn)接口A和B中定義的所有抽象方法。79子接口可繼承多個父接口注意:一個子接口可以繼承〔extends〕多個父接口接口C繼承接口A和B類D實現(xiàn)接口C,那么需要實現(xiàn)A,B和C中所有的抽象方法80

interface要注意的問題盡量不向interface定義中隨意增加方法。直接在接口中增加方法,會帶來所有實現(xiàn)該接口的類的維護問題。推薦:定義新接口,繼承原接口來增加方法publicinterfaceshape{voiddraw();voiderase();

doublearea();//直接在接口中增加方法,會帶來所有該接口的子類的維護問題}publicinterfaceShapeWithAreaextends

Shape{//通過子接口來新增方法

doublearea();}81interface:多態(tài)性可聲明interface的變量,指向具體實現(xiàn)該interface的類的實例,并實現(xiàn)多態(tài)性。82接口實現(xiàn)配合類繼承:多繼承這是示意圖,考試不必畫,這里用來幫助大家理解的。83Java中接口與抽象類的比較接口中的所有方法都是抽象的,而抽象類可以定義有方法體的不同方法。一個類可以實現(xiàn)多個接口,但是只能繼承一個父類。繼承父類和實現(xiàn)接口相組合,可實現(xiàn)多繼承。84上機練習創(chuàng)立一個接口,接口名Function,具有一個方法evaluate,參數(shù)為一個int型變量,返回值為int。創(chuàng)立一個類,類名Half,實現(xiàn)Function接口的evaluate方法:將傳入的參數(shù)除以2返回。創(chuàng)立一個類,類名TwoTimes,實現(xiàn)Function接口的evaluate方法:將傳入的參數(shù)乘以2返回。再新建一個類,在類中實現(xiàn)一個方法,該方法的參數(shù)列表為一個int型數(shù)組和一個Function類型對象,功能為利用Function對象的evaluate操作對數(shù)組的每個元素進行改變,最后返回改變后的int型數(shù)組。利用上述方法,以及Half和TwoTimes類,對一個數(shù)組的所有元素進行除以2或者乘以2的操作。85主要考核知識點第四局部Java類庫-異常86異常分類Error很難恢復(fù)的嚴重錯誤。一般屬于系統(tǒng)內(nèi)部錯誤,不由程序處理。發(fā)生時,由用戶按照系統(tǒng)提示關(guān)閉程序。Exception由程序本身或環(huán)境產(chǎn)生的錯誤,可通過異常處理來進行有效控制。RuntimeException:程序設(shè)計或?qū)崿F(xiàn)上的問題,如數(shù)組越界等。其他Exception:通常是由環(huán)境因素引起的,并且可以被處理的。如文件不存在,無效URL等。87常用方法:StringgetMessage():返回詳細信息StringtoString():返回包括異常類名以及getMessage()信息的描述voidprintStackTrace():打印出異常發(fā)生的路徑〔精確到第幾行〕 即,引起異常的方法調(diào)用的序列。這些均繼承自Throwable類Exception類的常用方法88異常處理良好的程序應(yīng)預(yù)見并處理可能發(fā)生的各種異常Java中的異常處理方法:捕獲并處理異?!灿砂l(fā)生異常的方法自行處理〕將方法中產(chǎn)生的異常拋出〔在其他程序調(diào)用該方法時進行處理〕89異常處理:捕獲與處理異常try

語句塊catch語句塊finally語句塊try語句后必須跟隨至少一個catch或者finally語句塊90try/catch/finally一般形式try語句塊:包含可能產(chǎn)生異常的java語句catch語句塊:提供發(fā)生異常時的處理方法finally語句塊:無論是否發(fā)生異常,均會執(zhí)行try{

javastatements;}catch(SomeThrowableClassvariableName){

javastatements;}一條或多條可能產(chǎn)生異常的java語句能夠被處理的異常類名,必須是Throwable的子類被捕獲異常的變量名稱,可作為局部變量使用當捕獲到異常時執(zhí)行的java語句finally{

javastatements;}91catch處理多個異??蓪懚鄠€catch語句塊捕獲不同種類的異常當拋出一個異常時,依次匹配各個catch語句內(nèi)捕獲的異常類型,執(zhí)行第一個類型匹配的catch語句,其他catch語句不再執(zhí)行。匹配規(guī)那么:拋出對象與catch參數(shù)的類型相同或是參數(shù)類的子類處理算術(shù)異常(如除0)處理數(shù)組越界異常92catch處理多個異常例如除0數(shù)組訪問越界93finally語句塊無論是否發(fā)生異常都要執(zhí)行finally語句塊執(zhí)行完后,繼續(xù)執(zhí)行程序的后續(xù)代碼。94異常處理:拋出異常在方法聲明中說明可能產(chǎn)生的異常,但該方法本身將不處理該異常,而將它拋到調(diào)用該方法的程序中去。classA{publicstaticvoidtroublesome()throwsSomeException{ …..}}拋出異常ClassB{

…try{A.troublesome();…}catch(SomeExceptione){…}調(diào)用拋出異常的方法時,用try/catch捕獲95方法聲明中throws后的Exception類可配合方法體內(nèi)throw語句拋出異常類對象。throw語句拋出異常類對象聲明方法可能拋出的異常使用throw語句拋出異常對象:一旦拋出異常對象,該方法內(nèi)后續(xù)代碼不再執(zhí)行!96throw語句拋出異常類對象聲明方法可能拋出的異常使用throw語句拋出異常:一旦拋出異常,該方法內(nèi)后續(xù)代碼不再執(zhí)行97自定義異常繼承Throwable或者它的子類〔如Exception〕自定義異常98自定義異常完整的異常類類名99課堂練習1程序輸出?100課堂練習2101課堂練習3102主要考核知識點第四局部Java類庫-線程103進程VS線程當程序進入到內(nèi)存運行時,即變成了一個進程。處于運行過程中的程序。具有一定的獨立功能系統(tǒng)進行資源分配和調(diào)度的一個獨立單位。具有獨立性、動態(tài)性和并發(fā)性。線程可使得同一個進程可以同時并發(fā)處理多個任務(wù)。也被稱為輕量級進程是進程的執(zhí)行單元,是進程的組成局部。一個進程可以擁有多個線程, 一個線程必須擁有一個父進程。104進程VS線程一個程序運行后至少有一個進程,一個進程可以包含多個線程,但至少有一個線程。操作系統(tǒng)可以同時執(zhí)行多個任務(wù),每個任務(wù)就是進程;進程可以同時執(zhí)行多個任務(wù),每個任務(wù)就是線程。105線程的創(chuàng)立兩種方式,均需要編寫run()方法實現(xiàn)Runnable接口繼承Thread類推薦使用Runnable接口的方式,便于繼承其他類。實現(xiàn)Runnable接口繼承Thread類start方法啟動線程106主要考核知識點第四局部4.4Java類庫-輸入輸出107緩存流BufferedInputStream/BufferedOutputStream;BufferedReader/BufferedWriter數(shù)據(jù)從原始流成塊讀入或?qū)?shù)據(jù)積累到一個大數(shù)據(jù)塊后再成批輸出減少讀寫次數(shù),提高程序執(zhí)行效率過濾流,需在構(gòu)造方法時給出前端流〔輸入〕或后端流〔輸出〕publicBufferedInputStream(InputStreamin)publicBufferedOutputStream(OutputStreamout)108緩存流例如:按行讀取文件BufferedReader增加readLine()方法,讀一行字符返回〔文件尾返回null〕BufferedReader常和FileReader構(gòu)成輸入流套接用于讀取文本文件。109緩存流例如:按行讀取文件110標準文件類:FileFile類對象對應(yīng)于文件系統(tǒng)中的一個目錄或者文件可獲取文件的信息:路徑、名字、長度、可否讀寫等可管理文件:創(chuàng)立、刪除、更名等不可對文件數(shù)據(jù)讀寫〔由文件流實現(xiàn)〕File對象的創(chuàng)立publicFile(Stringpathname):可使用絕對路徑或相對路徑Filef1=newFile(“c:/work/myfile.txt”);Filef2=newFile(“mydir/dir1”);publicFile(Stringparent,Stringchild):parent-父目錄,child-文件名或目錄名Filemydir=newFile(“d:/fatherDir”,“sonDir”)//指向d:/fatherDir/SonDirpublicFile(Fileparent,Stringchild):用File類對象來表示父目錄111File類創(chuàng)立文件或目錄第一次運行第二次運行文件和目錄已經(jīng)存在,故創(chuàng)立失敗112上機練習1.修改擲骰子程序,將用戶玩游戲的結(jié)果存入文件內(nèi),并提供一個方法讓用戶查看自己的歷史游戲勝率。FileWriter的構(gòu)造使用FileWriter(Stringfilename,booleanappend),設(shè)定append為true,從而向原文件的尾部繼續(xù)添加內(nèi)容。113主要考核知識點第四局部4.5Java類庫-GUI114BorderLayout邊界布局管理器將容器分成五個區(qū)域BorderLayout.NORTHBorderLayout.SOUTHBorderLayout.CENTERBorderLayout.EASTBorderLayout.WEST每個區(qū)域只能放置一個組件當用戶改變?nèi)萜鞔翱诘拇笮r,各個組件的相對位置不變,而組件的大小改變BorderLayout是JFrame的默認布局管理器115GUI的事件處理GUI中事件處理的一般過程:當用戶在界面上利用鼠標或鍵盤進行操作時監(jiān)測GUI的操作系統(tǒng)將發(fā)生的事件傳遞給GUI應(yīng)用程序應(yīng)用程序根據(jù)事件的類型做出相應(yīng)的反響。事件處理模型中的3類對象事件(event):操作產(chǎn)生事件〔按下鍵盤、拖動或單擊鼠標等〕事件源(eventsource):產(chǎn)生事件的組件〔如按鈕JButton〕事件處理器(eventhandler):接受事件對象,進行解釋,并做出相應(yīng)處理。116委托方式的事件處理當界面操作事件產(chǎn)生并發(fā)送到產(chǎn)生事件的組件時,該組件將把事件發(fā)送給能接收

溫馨提示

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

評論

0/150

提交評論