版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第九章Java高級編程知識點:流線程
異常處理重點、難點:文件字節(jié)流異常處理和自定義異常線程的創(chuàng)建和運行關(guān)鍵詞:
InputStream、OutputStream、PrintStream
FileInputStream、FileOutputStream、
System.in、System.out
運行時異常、非運行時異常Throwable、ExceptionThrow、Throws
Thread、Runnable
一、流、輸入流、輸出流的概念1.關(guān)于流的定義不同的教材有不同的說法:流是指在計算機的輸入輸出之間流動的一個數(shù)據(jù)序列,其從數(shù)據(jù)源串行地流向數(shù)據(jù)的目的地;流是傳遞數(shù)據(jù)信息的載體,是程序中數(shù)據(jù)所經(jīng)歷的路徑;
流是一種抽象的發(fā)送和接收數(shù)據(jù)的方法;
流是提供了一條通道的程序,可以使用這條通道把數(shù)據(jù)源中的數(shù)據(jù)傳送到目的地;
流是一組有序的有起點有終點的數(shù)據(jù)集合;
說法不同,但它們都圍繞著數(shù)據(jù)這個元素,考慮的問題是:數(shù)據(jù)數(shù)據(jù)從哪里來?數(shù)據(jù)到哪里去?同時也隱含指出了數(shù)據(jù)怎么來、數(shù)據(jù)怎么去的問題。
例如:全班同學(xué)要從桂林去南寧數(shù)據(jù):全班學(xué)生數(shù)據(jù)源(數(shù)據(jù)的來源):桂林目的地(數(shù)據(jù)的去處):南寧怎么從桂林來:公路鐵路空中航線怎么到南寧去:公路鐵路空中航線流
進一步按來去方向分類:數(shù)據(jù):data
數(shù)據(jù)源:source
來的方法:
method11method12……..數(shù)據(jù):data目的地:destination
去的方法:
method21method22……..Java輸入流Java輸出流
2.輸入流:將數(shù)據(jù)從數(shù)據(jù)源傳給程序,這個數(shù)據(jù)源可以是文件,內(nèi)存,或是網(wǎng)絡(luò)連接等。
數(shù)據(jù)源程序輸入流
3.輸出流:可將數(shù)據(jù)送到目的地,目的地可以是文件,內(nèi)存,或是網(wǎng)絡(luò)連接等
程序目的地輸出流
數(shù)據(jù)源輸入運算輸出目的地輸入流Java程序設(shè)計中,輸入數(shù)據(jù)可以用輸入流從數(shù)據(jù)源中得到,輸出數(shù)據(jù)可以輸出流來輸送到目的地
程序輸出流
Java系統(tǒng)中根據(jù)數(shù)據(jù)的來源和去處的不同,提供了一系列的輸入流和輸出流類,統(tǒng)一組織在java.io包中,編程時利用它們,實現(xiàn)不同的輸入/輸出的數(shù)據(jù)處理。
二、字節(jié)流1、概述
輸入字節(jié)流部分類的繼承關(guān)系圖
輸出字節(jié)流部分類的繼承圖m字節(jié)輸入流類:InputStream
字節(jié)輸出流類:OutputStream它們是所有字節(jié)流的父類,是將數(shù)據(jù)以字節(jié)為基本處理單位的流它們是抽象類,實際編程中使用它們的子類
2、相關(guān)設(shè)計模式
Java的字節(jié)流在第一層子類上采用了適配器(Adapter)模式在第二層子類上采用了裝飾(Decorator)模式。這些模式的使用使得Java的I/O流在使用上具有與眾不同的特點。
1)適配器(Adapter)模式適配器模式類圖
問題:什么情況下使用Adapter模式?兩個不同的類或接口,但功能相同或相近,用適配器模式將兩個類加以轉(zhuǎn)換,還可以補充源沒有的方法,而目標需要的方法。例:一個老師會講課(只會用中文),也能完成項目工程,另一個工程師會用英語上課,利用他們兩個人來完成用英語上課,同時又完成工程項目.
classTeacher{
Stringname;
publicvoidspeck(){
System.out.println(“這個技術(shù)的難點是:。。。。");}publicvoiddoProject(){
System.out.println(“完成了項目工程");}}classEngineer{
Stringname;
publicvoidspeck(){
System.out.println(“thedifficultyofthisTechnologyis:…..");}}
classAdaextendsTeacher{Engineerobj;
intage;
publicvoidspeck(){
obj=newEngineer();
obj.speck();
obj.doProject();}
}
publicclassUser{
publicstaticvoidmain(String
args[]){
Teachersm=newAda();
sm.speck();
sm.doProject();}}
publicclassUser1{
publicstaticvoidmain(String
args[]){
Teachersm=newTeacher();
sm.speck();
sm.doProject();}}
FileInputStream是一個適配器類適配器FileInputStream類圖
2)裝飾(Decorator)模式
DataInputStream等類是具體的裝飾類
DataOutputStream等類是具體的裝飾類
看下圖:
兼職的學(xué)生:如果要增加學(xué)生的功能或職責(zé),可采用裝飾模式進行擴展
三。字節(jié)流的使用
1.InputStream與OutputStream
InputStream是字節(jié)輸入流,它包含的三面的信息是:數(shù)據(jù):字節(jié)用于程序從數(shù)據(jù)源中獲取數(shù)據(jù)主要方法:
InputStream類的主要方法:abstractintread():從輸入流中讀取一個字節(jié),返回0到255之間的一個數(shù),遇到結(jié)尾返回-1。int
read(byteb[]):從輸入流中讀取長度為b.length的字節(jié)數(shù)到b,并返回讀取字節(jié)數(shù)。遇到結(jié)尾返回-1。intread(byteb[],int
off,int
len):從輸入流中讀取長度為len的字節(jié)數(shù)到off開始的數(shù)組b,并返回讀取字節(jié)數(shù)。遇到結(jié)尾返回-1。
OutputStream是字節(jié)輸出流,它包含的三面的信息是:數(shù)據(jù):字節(jié)用于將數(shù)據(jù)送到目的地主要方法:
OutputStream類的主要方法:abstractvoidwrite(intb):將指定的字節(jié)b寫入輸出流,如果b>255,則只寫入其低位字節(jié)。voidwrite(byteb[]):把字節(jié)數(shù)組b中的b.length個字節(jié)寫入輸出流。voidwrite(byteb[],int
off,int
len):把字節(jié)數(shù)組b中off開始長度為len個字節(jié)寫入輸出流。
2。File類:并不屬于流,但主要應(yīng)用于流技術(shù)中,所以Java把它放入了java.io包中
計算機文件基本上分為二種:二進制文件和ASCII碼(也稱純文本)文件,除了純文本文件外,其它的所有文件都是二進形式的文件,例如圖形文件JPG、GIF等及文字處理文件如word,Excel等文件等都屬于二進制文件,這些文件含有特殊的格式及計算機代碼,需要專門的軟件才能打開進行查看。而文本文件則可由任意軟件處理。
File類
構(gòu)造方法:
File(Stringname)
File(String
path,Stringname)
File(File
file,Stringfilename)
3。FileInputStream和FileOutputStream
FileInputStream是文件字節(jié)輸入流,它包含的三方面的信息是:數(shù)據(jù):字節(jié)用于程序從數(shù)據(jù)源---文件中獲取數(shù)據(jù)主要方法:重寫或繼承于父類
主要構(gòu)造方法:
FileInputStream(Stringname)
FileInputStream(File
fileObject)它們有可能引發(fā)FileNotFoundException異常
例讀取文本文件的內(nèi)容并顯示輸出思考過程:初始建模
為了滿足“開---閉”原則,進一步抽象
例9_1
importjava.io.*;publicclassReadTextFile{StringfileName;//要讀取的文件名
publicReadTextFile(){}publicReadTextFile(Strings){
fileName=s;
}
publicStringread1(){
try{Filef=newFile(fileName);
FileInputStreamfin=new
FileInputStream(f);byte[]b=newbyte[(int)f.length()];Strings=null;
fin.read(b);s=newString(b);returns;}catch(Exception
e){returnnull;}}
publicStringread1(Stringfn){try{Filef=newFile(fn);
FileInputStreamfin=newFileInputStream(f);byte[]b=newbyte[(int)f.length()];Strings=null;
fin.read(b);s=newString(b);returns;}catch(IOException
e){returnnull;}}}
publicStringoutPut(){return("文件"+fileName+"的內(nèi)容是:"+read1());}}
publicclassUser{
publicstaticvoidmain(String
args[]){
try{
ReadTextFile
obj=newReadTextFile("a.txt");
System.out.println(obj.outPut());
ReadTextFileobj1=newReadTextFile("User.java");Strings1=obj1.read1();System.out.println(s1);}catch(Exceptione){}}}
注意:
1.從文件輸入流中讀文本文件到顯示器輸出的方法
2.一般只有純文本文件才考慮采用上述方法輸出到顯示器進行查看,二進制文件不能直接地輸出到顯示器,因這它們是需要特殊的軟件才能打開的。
如果上例把Filef=newFile(“a.txt”);改成Filef=newFile(“a.doc”);會有什么輸出結(jié)果?
FileOutputStream類
OutputStream是字節(jié)輸出流,它包含的三面的信息是:數(shù)據(jù):字節(jié)用于將數(shù)據(jù)送到目的地---文件主要方法:重寫或繼承了父類的方法
主要的構(gòu)造方法:FileOutputStream(Stringname)FileOutputStream(String
name,booleanappend)FileOutputStream(File
fileObj)它們有可能引發(fā)IOException或SecurityException
例將文本文件的內(nèi)容寫入文件思考過程:初始建模
importjava.io.*;publicclassWriteTextFile{StringwriteFileName;
publicWriteTextFile(){}publicWriteTextFile(Stringsout){
writeFileName=sout;}
publicvoidgetOutPut(Strings){
try{Filef=newFile(writeFileName);
FileOutputStream
fout=new
FileOutputStream(f);
fout.write(s.getBytes());
fout.close();}
catch(IOExceptione){}}
publicStringread1(Stringfn){try{
FileInputStreamfin=new
FileInputStream(fn);byte[]b=newbyte[(int)f.length()];Strings=null;
fin.read(b);s=newString(b);returns;}catch(IOException
e){returnnull;}}
4.DataInputStream和
DataOutputStream
它可以按java的數(shù)據(jù)類型讀取數(shù)據(jù)構(gòu)造方法:
DataInputStream(InputStreamins);
DataOutputStream(OutputStreamouts);
DataInputStream主要方法:
int
readInt()bytereadByte()longreadLong()StringreadUTF()
boolean
readBoolean()
int
readInt()floatreadFloat()shortreadShort()charreadChar()
DataOutputStream主要方法:
voidwrite(byteb[])voidwriteInt(intb)voidwriteShort(shortb)voidwriteLong(longl)voidwriteChar(charc)voidwriteFloat(floatf)voidwriteDouble(doublef)voidwriteUTF(Strings)voidwriteBoolean(booleanb)
例:將電話號碼(長整型數(shù))存入文件中
importjava.io.*;publicclassWriteFile{Strings;//文件名
publicWriteFile(){}publicWriteFile(Stringsout){
s=sout;}
publicvoidwrite1(longphone_number){try{Filef=newFile(s);
OutputStream
fout=newFileOutputStream(s);
DataOutputStream
dout=new
DataOutputStream(fout);
dout.writeLong(phone_number);
dout.close();}
catch(IOExceptione){}}
publicvoidwrite1(StringfileName,longph){try{Filef=newFile(fileName);
OutputStream
fout=newFileOutputStream(f);
DataOutputStream
dout=newDataOutputStream(fout);
dout.writeLong(ph);
dout.close();}
catch(IOExceptione){}}publiclongread1(StringfileName){longph=0;try{Filef=newFile(fileName);
InputStreamfin=newFileInputStream(f);
DataInputStreamdin=newDataInputStream(fin);ph=din.readLong();
din.close();}
catch(IOExceptione){}
finally{returnph;}}}
importjava.util.*;publicclassUseWriteFile{
publicstaticvoidmain(String
args[]){
try{Scannersc=newScanner(System.in);
System.out.println("請輸入你要存入文的內(nèi)容:");Stringinf=sc.nextLine();Longph=Long.parseLong(inf);
WriteFile
obj=newWriteFile("a.dat");obj.write1(ph);
System.out.println("已存入文件");System.out.println(obj.read1("a.dat"));}catch(Exceptione){}}}
5。標準輸入/輸出流對象
Java的System類中定義的類變量:
publicstaticPrintStreamout;publicstaticInputStreamin;
System.in:它是由系統(tǒng)自動創(chuàng)建的InputStream的一個輸入流對象,用來接收鍵盤的輸入的數(shù)據(jù)。System.out:它是OutputStream的子類PrintStream的一個輸出流對象,能夠輸出數(shù)據(jù)到顯示器。
.字節(jié)輸出流PrintStream:可以輸出各種類型的數(shù)據(jù)
構(gòu)造方法:
PrintStream(OutputStreamout);
在其父類OutputStream上增加的主要方法:
voidprintln()
voidprintln(booleanb)
voidprintln(charc)
voidprintln(char[]c)
voidprintln(doubled)
voidprintln(floatf)
voidprintln(inti)
voidprintln(longl)
voidprintln(Objectobj)
voidprintln(Stringstr)將各種類型的數(shù)據(jù)輸出到輸出流
四.序列化(串行化或可持續(xù)化)
序列化是把一個對象的狀態(tài)保存起來;從該區(qū)域讀取對象狀態(tài)即稱為反序列化。實現(xiàn)了Serializable接口的類的對象才可以序列化。
Serializable接口中沒有任何方法,只是做為一個標記來指示該類的對象可以序列化
主要由以下兩個類實現(xiàn):
ObjectOutputStream
ObjectInputStream
向流寫入對象和從流中讀取對象
構(gòu)造方法:
ObjectOutputStream(OutputStream
os);
ObjectInputStream(InputStreamis);
ObjectInputStream主要方法:
ObjectreadObject()
ObjectOutputStream主要方法:
writeObject(Object
obj)
例將學(xué)生信息的內(nèi)容寫入文件思考過程:初始建模
importjava.io.*;classStudentimplementsSerializable{ Stringname;String
password;intage;publicStudent(){ Stringname="2";Stringpassword="2";intage=20; } publicStudent(String
name,String
password,intage){
=name;
this.password=password;
this.age=age; } publicvoidsetPassword(Stringpass){
this.password=pass; }publicStringgetPassword(){ returnpassword; }publicvoidsetName(Stringname){
=name; }publicStringgetName(){ returnname; }publicvoidsetAge(intage){
this.age=age; }publicint
getAge(){ returnage; }}
publicclassUseObjectStream{publicObjectread1(StringfileName){try{
FileInputStream
fis=newFileInputStream(fileName);
ObjectInputStream
ois=newObjectInputStream(fis); returnois.readObject();}
catch(Exception
e){returnnull;}
}publicvoidwrite1(StringfileName,Object
obj){try{
FileOutputStream
fos=newFileOutputStream(fileName,true);
ObjectOutputStream
obs=newObjectOutputStream(fos);
obs.writeObject(obj);}
catch(Exceptione){} }}
importjava.io.*;publicclassUser{ publicstaticvoidmain(String
args[]){ Students1=newStudent("Tom","111",21);
UseObjectStream
vip=newUseObjectStream(); try{ vip.write1("customer.obj",s1);
System.out.println("用戶信息寫入文件"); Studentvip1=(Student)vip.read1("customer.obj");
System.out.println("文件中的信息為:");
System.out.println("用戶名:"+vip1.getName());
System.out.println("密碼:"+vip1.getPassword());
System.out.println("年齡:"+vip1.getAge());
} catch(Exceptione){
e.printStackTrace(); }}}
五.Scanner類Scanner是JDK1.5新增的一個類,是java.util包中的類。該類用來實現(xiàn)用戶的輸入;
構(gòu)造方法:(1)Scanner(InputStreamin)
(2)Scanner(Filefile)
主要方法:將控制臺輸入信息掃描為相應(yīng)的數(shù)值
Stringnext()StringnextLine()
boolean
nextBoolean()
bytenextByte()
doublenextDouble()
floatnextFloat()
int
nextInt()
longnextLong()
shortnextShort()
異常相關(guān)知識一.引入class旅游{publicstaticvoidmain(String[]args){
買票;//可能買不到坐車;//可能路途中車壞了
住宿;//可能找不到住處}}問題:未對可能的出現(xiàn)的問題進行處理,此時如果出現(xiàn)問題,旅游將會被迫終止.class旅游{publicstaticvoidmain(String[]args){
買票;//可能買不到
if(買不到){……}
坐車;//可能路途中車壞了
if(車壞了){……..}
住宿;//可能找不到住處
if(找不到住處){……..}}}
缺點:1)模糊了問題求解的邏輯,要考慮大量非正常的情況并做出處理,有時這種情況出現(xiàn)的機會很少,這使得程序設(shè)計變得復(fù)雜。2)程序員對非正常問題的處理的能力在很大程度上影響編程工作效率和質(zhì)量。3)層層處理太麻煩,程序可讀性降低。二、異常程序設(shè)計時把可以預(yù)見的非正常現(xiàn)象稱為異常。這種異常程序是可以處理的。
在完成特定功能的同時,具有完善的異常處理能力才是合格的,具有健壯性的程序。
1.Java的異常處理異常處理就是允許用戶有排除錯誤的機會,或至少能給出適當?shù)某鲥e提示信息。
Java中定義了很多異常類,用來描述經(jīng)常較容易發(fā)生的錯誤,當程序運行時發(fā)生了該類異常,就產(chǎn)生一個收集了異常信息的異常對象,我們通過捕捉或拋出來處理這個對象。
通過異常處理機制處理程序中可能發(fā)生的問題:
class旅游{publicstaticvoidmain(String[]args){try{買票;
坐車
住宿;}
catch(Exceptione){給出各種錯誤處理的信息和處理方法等;}}}
這些類都繼承自java.lang.Throwable類。Throwable類有兩個子類:Error和Exception,它們分別表示兩種異常類型。…….Error類及其子類通常用來描述Java運行系統(tǒng)中的內(nèi)部錯誤以及資源耗盡的錯誤。Error表示的異常是比較嚴重,僅靠修改程序本身是不能恢復(fù)執(zhí)行的,被稱為致命異常類。例如,前面所說的旅游,因為想去旅游的人在旅途中沒有錢了,或者受傷了…….此時就相當于發(fā)生了一個Error異常。在大多數(shù)情況下,發(fā)生該異常時,建議終止程序。Exception類可稱為非致命異常類,在開發(fā)Java程序過程中進行的異常處理,主要就是針對該類及其子類的異常處理。對程序中可能發(fā)生的該類異常,應(yīng)該盡可能進行處理,而不應(yīng)該在異常發(fā)生后終止程序。Exception類又分為兩種異常類型:運行時異常(RuntimeException)非運行時異常
三、異常類Exception
構(gòu)造函數(shù)
publicException();publicException(Strings);
常用方法:publicStringtoString()publicStringgetMessage()
1.RuntimeException可以預(yù)料,但不知何時何地發(fā)生,例如:旅游過程中坐公共汽車不買票,吃飯不給錢……這種異常一般不用處理,處理的開銷太大,如果發(fā)生Java虛擬機系統(tǒng)會自動處理。
常見的RuntimeException異常如下表所示:異常類名稱異常類含義ArithmeticException算術(shù)異常類ArrayIndexOutOfBoundsException數(shù)組下標越界異常類ArrayStoreException將與數(shù)組類型不兼容的值賦值給數(shù)組元素時拋出的異常ClassCastException類型強制轉(zhuǎn)換異常類IndexOutOfBoundsException當某對象(如數(shù)組或字符串)的索引超出范圍時拋出該異常NegativeArraySizeException建立元素個數(shù)為負數(shù)的數(shù)組異常類NullPointerException空指針異常類NumberFormatException字符串轉(zhuǎn)換為數(shù)字異常類SecurityException小應(yīng)用程序(Applet)執(zhí)行瀏覽器的安全設(shè)置禁止的動作時拋出的異常StringIndexOutOfBoundsException字符串索引超出范圍異常2。非運行時異??梢灶A(yù)料,知道何時何地可能會發(fā)生,如:旅游過程中買不到票,找不到住處……,出現(xiàn)這種情況時要求通過try…catch捕獲或由throws拋出。Java語言中常見的非運行時異常如下表所示:異常類名稱異常類含義ClassNotFoundException未找到相應(yīng)類異常EOFException文件已結(jié)束異常類FileNotFoundException文件未找到異常類IllegalAccessException訪問某類被拒絕時拋出的異常InstantiationException試圖通過newInstance()方法創(chuàng)建一個抽象類或抽象接口的實例時拋出該異常IOException輸入輸出異常類NoSuchFieldException字段未找到異常NoSuchMethodException方法未找到異常SQLException操作數(shù)據(jù)庫異常類四、異常處理的方式
對運行異??梢圆蛔鎏幚?,也就是說程序設(shè)計時不需要增加異常處理語句,Java虛擬機系統(tǒng)會自動進行處理;但是如果你能確定它發(fā)生的時間和地點,你也可以對它進行處理。
對非運行時異常,則需要進行處理,否則編譯通不過。
1.捕捉異常:
程序設(shè)計時使用try-catch-finally語句進行處理
語法格式:try{代碼0(可能產(chǎn)生異常的代碼)}catch(例外類1e){例外處理代碼1;}…catch(例外類ne){例外處理代碼n;}finally{必須執(zhí)行的代碼;}
importjava.io.*;classTryCatchTest{publicstaticvoidmain(String
agrs[]){Filefile=newFile("abc.txt");
inta[]={1,2};try{System.out.println(3/0);}
catch(ArithmeticExceptione){System.out.println("3/0");
System.out.println("ThisisArthmeticException");}try{System.out.println(a[2]);}
catch(ArrayIndexOutOfBoundsExceptione){System.out.println("a[2]");
System.out.println("ThisisArrayIndexOutOfBoundsException");}
try{FileInputStreamfin=newFileInputStream(file);}
catch(FileNotFoundExceptione){
System.out.println("abc.txtisnotfound");
System.out.println("ThisisFileNotFoundException");}
catch(IOExceptione){
System.out.println("ThisisIOException");}
}}2.通過throws語句聲明拋出,交給調(diào)用它的方法進行處理
這時方法的定義格式:
方法名([參數(shù)表])throws例外名列表
publicclassPeople{ publicint
check(String
strage)throwsException{
intage=Integer.parseInt(strage);
if(age<0) thrownewException(“年齡不能為負數(shù)!”); returnage; }}classUsePeople{ publicstaticvoidmain(String[]args){ try{ Peoplep=newPeople();
int
myage=p.check("-101");
System.out.println(myage); }catch(Exceptione){
System.out.println("數(shù)據(jù)邏輯錯誤!");
System.out.println("原因:"+e.getMessage()); } }}五、自定義異常
步驟:1、創(chuàng)建繼承Exception的異常類,主要定義構(gòu)造方法和重寫toString()方法,目的是給出適當?shù)某鲥e提示信息,讓用戶有機會排除錯誤。
publicclassE1extendsException{privateStringmessage;publicE1(Strings){message=s;}publicStringtoString(){returnmessage;}2、定義某一個方法在一定條件下產(chǎn)生這種異常對象,并用throws語句拋出該對象。
方法定義格式:
[修飾符]返回類型方法名(參數(shù)。。。)throws自定義異常
{if(…..)throw(自定義的異常對象)……}
3、其它方法調(diào)用該方法例:
testimportjava.io.*;classMyExp1extendsException{publicStringtoString(){return"自已定義的異常產(chǎn)生了";}}publicclassTest{publicvoidlogin(Stringa)throwsMyExp1{if(a.equals("李明")){MyExp1e=newMyExp1();throwe;}
}publicstaticvoidmain(String
arg[]){try{Testt1=newTest();t1.login("李明");}catch(MyExp1e){System.out.println(e.toString());}}}
線程相關(guān)知識
一、引入看一個例子:
classParent{StringpName;publicStringdoHousework(String
dosomething){return(dosomething);}}
publicclassStudent{StringsName;publicStringdoHomework(Stringsubject){return“完成”+subject;}}
classUseStudent{ publicstaticvoidmain(String
args[]){ Studenta=newStudent();
a.sName="李小明";Parentb=newParent();
b.pName="李大明";
System.out.println(a.doHomework(“語文作業(yè)!”));
System.out.println(b.doHousework(“拖地板"));}}二、線程的創(chuàng)建
Java語言中,線程也是一種對象,但并非任何對象都可以成為線程,只有實現(xiàn)Runnable接口或繼承了Thread類的對象才能成為線程。
兩種線程的實現(xiàn)方法:1.繼承Thread類
classParentextendsThread{StringpName;publicStringdoHousework(String
dosomething){return(dosomething);}
publicvoidrun(){try{
System.out.println(pName+doHousework(“拖地板"));
Thread.sleep(1000); }catch(Exceptione){
e.printStackTrace(); }}}
publicclassStudentextendsThread{StringsName;
publicStringdoHomework(Stringsubject){return"
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025租賃合同:高速數(shù)據(jù)交換業(yè)務(wù)租用協(xié)議
- 2024年精裝衛(wèi)浴采購協(xié)議模板版
- 2024年貨船裝卸作業(yè)合同
- 2024年長途汽車運輸合同:長途汽車客運合同:旅游線路定制服務(wù)3篇
- 二零二五年度個體工商戶股權(quán)置換與權(quán)益維護協(xié)議范本3篇
- 2025年度健身房室內(nèi)裝修施工合同協(xié)議書范本6篇
- 2024年:無房產(chǎn)證房產(chǎn)購買協(xié)議3篇
- 2025版鋼琴演奏會門票銷售合同范本模板2篇
- 2025版敬業(yè)員工綜合評價體系合作協(xié)議書3篇
- 二零二五年度合伙開設(shè)親子烘焙坊合同3篇
- 二氧化碳可降解塑料生產(chǎn)項目建議書
- 化工裝置常用英語詞匯對照
- 幼兒園幼兒教育數(shù)學(xué)領(lǐng)域核心經(jīng)驗
- 病例討論麻醉科PPT課件
- EBZ220A掘進機幻燈片
- 集體跳繩賽規(guī)則
- 煤礦調(diào)度工作培訓(xùn)內(nèi)容
- 機械原理課程設(shè)計-旋轉(zhuǎn)型灌裝機運動方案設(shè)計
- 標準《大跨徑混凝土橋梁的試驗方法》
- 1、食品安全與營養(yǎng)健康自查制度(學(xué)校食堂)
- 四氯化硅的提純
評論
0/150
提交評論