版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
(1)構(gòu)造方法的方法名與類名相同;
Java語言程序設(shè)計(鄭莉)(2)構(gòu)造方法沒有返回類型(修飾符void也不能有):
第二章習(xí)題答案(3)構(gòu)造方法通常被聲明為公有的(public);
1.什么是對象、類,它們之間的聯(lián)系?(4)構(gòu)造方法可以有任意多個參數(shù):
答:1)對象是包含現(xiàn)實(shí)世界物體特征的抽象實(shí)體,它反映系統(tǒng)為(5)構(gòu)造方法的主要作用是完成對象的初始化工作;
之保存信息和與它交互的能力。對象是一些屬性及服務(wù)的封裝體,(6)構(gòu)造方法不能在程序中顯式的調(diào)用;
在程序設(shè)計領(lǐng)域,可以用“對象=數(shù)據(jù)+作用于這些數(shù)據(jù)上的操作”(7)在生成一個對象時,系統(tǒng)會自動調(diào)用該類的構(gòu)造方法為
來表示?,F(xiàn)實(shí)生活中對象是指客觀世界的實(shí)體:在程序中對象是指新生成的對象初始化。
一組變量和相關(guān)方法的集合。9如果在類聲明中聲明了構(gòu)造方法,系統(tǒng)是否還提供默認(rèn)的構(gòu)造方
2)類是既有相同操作功能和相同的數(shù)據(jù)格式的對象的集合與抽象!法?
3)兩者的關(guān)系:對象是類的具體實(shí)例答:
2.什么是面向?qū)ο蟮某绦蛟O(shè)計方法?它有那些基本特征?用戶在進(jìn)行類聲明時,如果沒有聲明任何構(gòu)造方法,系統(tǒng)會賦給
答:面向?qū)ο蟪绦蛟O(shè)計從所處理的數(shù)據(jù)入手,以數(shù)據(jù)為中心而不是此類一個默認(rèn)(無參)的構(gòu)造方法。但是,只要用戶聲明了構(gòu)造方
以服務(wù)為中心來描述系統(tǒng)。它把編程問題視為?個數(shù)據(jù)集合,數(shù)據(jù)法,即使沒有聲明無參的構(gòu)造方法,系統(tǒng)也不會再賦默認(rèn)的構(gòu)造方
相對于功能而言,具有更強(qiáng)的穩(wěn)定性。法。
它的特征:抽象,封裝,繼承,多態(tài)。10:聲明Patient類表示在門診室中的病人。此類對象應(yīng)包括na
3(無用)me(astring)\sex(achar)、age(an
4.請解釋類屬性、實(shí)例屬性及其區(qū)別。integer)>weight(afloatO>allergies(aboolean).
答:實(shí)例屬性,由一個個的實(shí)例用來存儲所有實(shí)例都需要的聲明存取及修改方法。在一個單獨(dú)的累中,聲明測試方法,并生
屬性信息,不同實(shí)例的屬性值可能會不同。成兩個patient的例了,:
5.請解釋類方法、實(shí)例屬性及其區(qū)別。Atientapril=newPatient();
答:實(shí)例方法表示特定對象的行為,在聲明時前面不加static修飾April.setname(//zhangli,z)
符,在使用時需要發(fā)送給一個類實(shí)例。April.setSexfT);;
類方法也稱為靜態(tài)方法,在方法聲明時前面需加static修飾April.setage(330;
符,類方法表示具體實(shí)例中類對象的共有行為。April.setweigeht(154.72);
區(qū)別:實(shí)例方法可以直接訪問實(shí)例變量,調(diào)用實(shí)例方法,實(shí)ApriLsetalolergies(true);
例方法可以直接訪問類變量,調(diào)用類方法;類方法可以直接調(diào)用類System.out.println("那么:"+april.getname());
變量和類方法,類方法不能直接調(diào)用實(shí)例變量和實(shí)例方法;System.out.println(z,sex:w+april.getsex());
6.類的訪問控制符有哪幾種?具體含義及其區(qū)別。System.out.println(z/age:w+april.getage());
答:類的訪問控制符只有public(公共類)及無修飾符(默認(rèn)類)System.outprintlnl^weught:/,+april.getweight());\
兩種。System.out.println(/Zallergies:w+april.getallergies());
區(qū)別:當(dāng)使用public修飾符時表示所有其他的類都可以使用此類;聲明并測試toString()方法顯示?個病人的aga、sex、name及
當(dāng)沒有修飾符時,則只有與此類處于同一包中的其他類可以使用allergies屬性。
類。答:
7類成員的訪問控制符有哪幾種?他們對類成員分別有哪些訪問限publicclassPatient
制的作用?{
答:類成員的訪問控制符有public,private,protecte及無修飾符.privateStringname;
public(公有的):用public修飾的成分表示公有的,也就是它可以被privatecharsex;
其他任何對象訪問(前提是對累成員所在的類訪問有訪問權(quán)限).privateintage;
Private(保護(hù)的):類中限定為private的成員只能被這個類本身privatefloatweight;
訪問,在類外不可見。privatebooleanallergies;
proteced(保護(hù)的)用該關(guān)鍵字修飾的成分是受保護(hù)的,只可以publicvoidsetname(Stringa)
被同一類及其子類的實(shí)例對象訪問。{
無修飾符(默認(rèn)的):public,private,protected這個三個限定符name=a;
不是必須寫的。如果不寫,則表明是“friendly",相應(yīng)的成分可以}
被所在保重的各類訪問。publicvoidsetsexfcharb)
8簡述構(gòu)造方法的特點(diǎn)?{
答:構(gòu)造方法主要有以下特點(diǎn):sex=b;
)減、乘運(yùn)算。
publicvoidsetage(intc)答:publicclassComplex
((
age=c;privatefloata;
)privatefloatb;
publicvoidsetweight(floatd)publicStringtoString()
({if(a!=O)
weight=d;return(a+"i"+"+"+b);
)elsereturn(""+b);
publicvoidsetallergies(booleane)}
(publicComplex(floata/loatb)
allergies=e;{
)this.a=a;
publicStringgetname(){returnname;}this.b=b;
publicchargetsex(){returnsex;}}
publicintgetage(){returnage;}publicvoidAdd(Complexp)
publicfloatgetweight(){returnweight;}{
publicbooleangetallergies(){returnallergies;}this.a+=p.a;
)this.b+=p.b;
publicclassText}
(publicvoidDecrease(Complexp)
publicstaticvoidmain(Stringargs[]){
(this.a-=p.a;
Patientapril=newPatient();this.b-=p.b;
april.setname("ZhangLi");)
april.setsexl7');publicvoidMultiply(Complexp)
april.setage(33);{
april.setweight(154.72f);this.a=this.a*p.a;
april.setallergies(true);this.b=this.b*p.b;
System.out.printlnf'Name:"+april.getname());)
System.out.printlnf'sex:"+april.getsex());}
System.out.printlnf'age:"+april.getage());publicclassComplexTexter
System.out.printlnf'weight:"+april.getweight());{
System.out.printlnf'allergies:"+april.getallergies());publicstaticvoidmain(Stringargs[])
){
)Complexa=newComplex(2z4);
hicrosoFtWindowsXP5.1.26001iplexb=newComplex(5z8);
<C>版杈所有1985-2001Microsoft;Corp-
i(b);System.out.println(a.toString()+"\n");
C-XDocumentzsandSet;tzinXAdminis=
:rease(b);System.out.println(a.toString()+"\n,');
D=X>c<1jaua
ltiply(b);System.out.println(a.toString()+"\n");
D=Patient_JAVA
D=Text-Jatvai
p二Text
sex=£
產(chǎn)ge:33
we=154.72
a1leies=t;
[D:
11:聲明并測試?個復(fù)數(shù)類,其方法包括toString()及復(fù)數(shù)的加、
s=s*i;
D:\jaua>jauacComplex.jaua
System.out.println(n+"!="+s+"\n");
D:\jaua>jauacConplexTexter.jaua
D:\jaua>jauaComplexTexter
?.0i*12.0
5.0i+8.0
10.0i+32.0
D:
12:什么是UML?它由哪幾部分組成?
答:
UML是圖形化()即可視化的建模語言,成為面向?qū)ο蠼?/p>
的標(biāo)準(zhǔn)語言。
它由四部分組成:(1)視圖(2)圖(3)模型元素(4)通用
機(jī)制
13.常用的類與類之間的關(guān)系有哪兒種。
答:有關(guān)聯(lián)、依賴、流、泛化、實(shí)現(xiàn)、使用。
14.考慮學(xué)院、系及教員應(yīng)該具有哪些屬性,并畫出它們之間關(guān)
系的類圖。
第三章課后習(xí)題答案2.編寫程序,接收用戶從鍵鍵盤上輸入的三個整數(shù)x,y,z..從中選出最
1.設(shè)N為自然數(shù):大和最小者,并編程實(shí)現(xiàn)。
n!=l*2*3*....*n答:publicclassMath{
稱為n的階乘,并且規(guī)定0!=1.試編程計算21,4!,6!he10!.并將結(jié)果publicstaticvoidmainfStringargs[]){
輸出到屏幕上。int[]IntArg=newint[args.length];
答:for(inti=O;i<args.length;i++){
publicclassMuilntArg[i]=lnteger.parselnt(args[i]);
{}
publicstaticvoidmain(Stringargs[])intmax,min;
{max=lntArg[O]>lntArg[l]?lntArg[O]:lntArg[l];
inti,n;max=max>lntArg[2]?max:lntArg[2];
floats;min=lntArg[O]<lntArg[l]?lntArg[O]:lntArg[l];
for(n=0;n<=10;n=n+2)min=min<lntArg[2]?min:lntArg[2];
{System.out.println("max=',+max);
if(n==O)System.out.println("min="+min);
System.out.pnntln("0!=l\n");}
else)
{s=l;
for(i=l;i<=n;i++)
array[i]=(int)(Math.random()*100);
b:\jaua>jauacMath.Jaua
if(array[i]>50)
b:\jaua>jauaMath451678n++;
pax=78
r.4cif(array[i]>=MaxNum)
pin=16
MaxNum=array[i];
|ID:7aua>.if(array[i]<=MinNum)
3.求出100一枚的宿舍,并將這些數(shù)在扉幕上5個乙杭地顯示出來aMinNum=array[i];
答:System.out.print(array[i]+"");
publicclassSu{)
publicstaticvoidmain(Stringargs[]){System.out.println();
intn,i,k=0,y;System.out.println("MinNum="+MinNum);
for(n=2;n<=100;n++){System.out.println("MaxNum="+MaxNum);
y=i;System.out.println(”大于50的整數(shù)個數(shù)有嚴(yán)+n);
for(i=2;i<n;i++))
if(n%i==O)}
{y=0;break;}
c\C:\¥I!iD0WS\syste>32\c>d.exe
if(y==i){
k++;p:、我的文檔、桌面3aua>jauacRandom.jaua
System.out.print(n+"");D:\我的文檔、桌面\Jaua>jauaRandom
if(k%5==0)數(shù)列為:
3096855293378096714452431854550812621
System.out.print("\n");323258754481263734651119308564601581
)3547533381971611903537133121799865105
438685438374269867176786979773565193
)MinNun=l
MaxNun=98
大于50的整數(shù)個數(shù)有:52
)
:\jaua>jauacSu.jaua5.接收用戶從鍵盤上輸入的兩個整數(shù),求兩個數(shù)的最大公約數(shù)和最
小公倍數(shù),并輸出。
CD:\jaua>jauaSu
publicclassTest2
23571113
1719232931(
3741434753publicstaticvoidmain(String[]args)
5961677173
(
79838997
int[]I=newint[args.length];
|D:\jaua>l
for(inti=O;i<args.length;i++){
4.使用java.Iang.Math類,生成100個0--99之間的隨機(jī)整數(shù),找出l[i]=Integer.parseInt(args[i]);
他們之中的最大值和最小值,并統(tǒng)計大于50的整數(shù)個數(shù)。}
publicclassRandom{intm,n,tempzt;
publicstaticvoidmain(String[]args)if(l[0]<l[l])
((
intMinNum,MaxNum,n=O;temp=l[0];
int[]array=newint[100];l[0]=l[l];
array[0]=(int)(Math.random()*100);l[l]=temp;
MinNum=array[0];)
MaxNum=array[0];m=l[0];
n=l[l];
System.out.printin("數(shù)列為:");t=m%n;
System.out.print(array[0]+"");while(t!=0)
for(inti=0;i<100;i++)
m=t;
n=m;//Keyboard類
t=m%n;importjava.io.*;
)publicclassKeyboard(
System.out.printin("兩個數(shù)的最大公約數(shù)為:"+n);staticBufferedReaderinputstream=new
System.out.println("兩個數(shù)的最小公倍數(shù)為:⑴/n);BufferedReader(new
)InputStreamReader(System.in));
publicstaticintgetlnteger(){
try{
c、C:\fINDO¥S\syste?32\c?d.exe
return(Integer.valueOf(inputstream.readLine().t
D:\我的文檔、桌面Test2.Jaua
rim()).intValue());
世端的文檔、桌面3aua>jauaTest268}catch(Exceptione){
質(zhì)個數(shù)的最大公約數(shù)為:2
e.printStackTrace();
慚個數(shù)的馥小公倍數(shù)為:24
return0;
幟、我的文檔、桌面3aua>}
}
6.從鍵盤上輸入一件物品的價格(范圍在0.10~5.00元.),假publicstaticStringgetString(){
設(shè)用戶支付了?張5元紙幣,請列出?種找零的方案,使得紙幣及try(
硬幣的個數(shù)最少。加3.68元,應(yīng)為兩元一張、一元一張、五角一return(inputStream.readLine());
個、一角一個、五分一個、二分?個、一分一個。}catch(lOExceptione){
IIPrice類return"0";
importjava.io.*;}
publicclassPrice{}
publicstaticvoidmain(Stringargs[]){publicstaticfloatgetFloat(){
System.out.printIn("enteraStrings="n;
number(0.01---5.00):");try(
floata=Keyboard.getFloat();BufferedReaderin=newBufferedReader(new
intc=(int)(a*100);InputStreamReader(System.in));
intb=500-c;s=in?readLine();
System.out.printin("找零如下:”);return(Float.parseFloat(s));
if(b/200!=0){System.out.printin(b/200+”張2元)
?');b-=(b/200)*200;}catch(lOExceptione)
if(b/100!=0){System.out.printIn(b/100+”張1元(
");b-=(b/100)*100;}System,out.printin("輸入非法!*');
return(0.Of);
if(b/50!=0){System.out.printin(b/50+”張5角
");b-=(b/50)*50;}
if(b/20!=0){System.out.printin(b/20+”張2角}
");b-=(b/20)*20;}運(yùn)行結(jié)果:
if(b/10!=0){System.out.printin(匕/10+”張1角
吸‘Problems@Javadoc叵Declaration日
");b-=(b/10)*10;}
if(b/5!=0){System.out.printin(b/5+”個5分<terminated>Price[JavaApplication]D:\Progre
");b-=(b/5)*5;}enteranumber(0.01-------5.00):
3.6S
if(b/2!=0){System.out.printin(b/2+”個2分找零如下:
");b-=(b/2)*2;}[張漢
if(b!=0)System.out.printin(b+”個1分”);1張2角
1張T角
)
1個2分
7.什么是異常?解釋拋出、捕獲的含義。intnumber1=0,number2=0,result=0;
答:異常又稱為例外,是特殊的運(yùn)行錯誤對象,在程序中可以強(qiáng)制
編譯器來處理程序運(yùn)行中的發(fā)生的并非由程序本身所造成的錯誤;try(
拋出異常:把生成異常對象并提交的過程稱為拋出異常;
拋出異常是java中一個程序處理動作,檢查異常時要么在方法中聲System.out.prinlln(〃輸入第一個數(shù)字:");
明一個異常拋出,用try-catch語句捕獲異常,并進(jìn)行處理。
numberl=Integer.valueOf(Keyboard.getStringO).intVal
ue0;
8.簡述Java的異常處理機(jī)制。
System,out.printin(〃輸入第二個數(shù)字:");
答:java中聲明了很多異常類,每個異常類都代表了一種運(yùn)行錯誤,
類中包含了該運(yùn)行錯誤的信息和處理錯誤的方法等內(nèi)容。每當(dāng)java
number2=Integer.valueOf(Keyboard.getStringO).intVai
程序運(yùn)行過程中發(fā)生一個可識別的運(yùn)行錯誤時,即該錯誤有一個異
ue();
常類與之相對應(yīng)時,系統(tǒng)都會產(chǎn)生一個相應(yīng)的該異常類的對象,即
產(chǎn)生一個異常。?旦個異常對象產(chǎn)生了,系統(tǒng)中就?定有相應(yīng)的
result=quotient(numberl,number2);
機(jī)制來處理它,確保不會產(chǎn)生死機(jī)、死循環(huán)或其他對操作系統(tǒng)的損
害,從而保證了整個程序運(yùn)行的安全性。
)
9.系統(tǒng)定義的異常與用戶自定義的異常有何不同?如何使用這兩catch(NuniberFormatExceptione){
類異常?
答:系統(tǒng)定義的特定情況出現(xiàn)的問題,而此時用來對可能遇到的問System.out.printin(e.toString());
題進(jìn)行處理。用戶定義的是自己覺得可能會出現(xiàn)問題時,需要處理
System.exit(-1);
的。這樣避免程序中斷或是出現(xiàn)未知錯誤。
系統(tǒng)異常有兩種一種是運(yùn)行時異常,一種是普通異常,普通異常要)
求用戶捕獲或者拋出的,不補(bǔ)貨或者拋出就會編譯不通過。運(yùn)行時
System,out.printIn(numberl+/z/zz+number2+/z=z,+result);
異常編譯可以通過,但是運(yùn)行時才顯露出來。
)
10.用戶如何自定義異常?編程實(shí)現(xiàn)一個用戶自定義異常。
}
(1)定義mytest
(2)定義DivideByZeroException
importjava.io.*;
publicclassmytest{publicclassDivideByZeroExceptionextends
ArithmeticException{
privatestaticintquotient(intnumber,int
publicDivideByZeroExceptionO{
denominator)throws
super(〃除數(shù)不能為0!〃);
DivideByZeroException{
}
if(denominator==0)
)
thrownewDivideByZeroExceptionO;
(3)Keyboard
return(number/denominator);定義
importjava.io.*;
publicclassKeyboard(
publicstaticvoidmain(Stringargs[]){
staticBufferedReaderinputStream=newBufferedReader(new中需要取消從父類繼承的方法。
InputStreamReader(System,in));3.聲明兩個帶有無參構(gòu)造方法的兩個類A和B,聲明A的子類C,
并且聲明B為C的一個成員,不聲明C的構(gòu)造方法。編寫測試代
publicstaticintgetlntegerO{碼,生成類C的實(shí)例對象,并觀察結(jié)果。
HA類
try{
publicclassA{
publicA(){
return
System.out.printin("輸出A類");
(Integer.valueOf(inputStream.readLine().trim()).intValue(
)
));
}
〃B類
}catch(Exceptione){
publicclassB{
publicB(){
e.printStackTrace();
System.out.println("輸出B類”);
return0;}
)
類
publicclassCextendsA{
Bb=newB();
}
publicstaticStringgetStringO{〃測試類
publicclasstest4_3{
try(publicstaticvoidmain(Stringargs[]){
Cc=newC();
return(inputstream.readLineO);
)
)
}catch(lOExceptione){return"0〃;}運(yùn)行結(jié)果:
}IProblems@Javadoc
<terminated>test43[Java
輸出A類
輸出3類
D:\jaua>jauanytest
輸入第一個數(shù)字:4聲明一個赭類A它只有種非罷l認(rèn)構(gòu)造方法;聲明A的子類B,
76B具有默認(rèn)方法及II默認(rèn)方法,井,I-:B的構(gòu)造方法中調(diào)用基類A的
輸入第二個數(shù)字:
Exceptioninthread"main"DiuideBsFZeroException:除數(shù)不能為0?
atnytest.quotient<mytest.jaua:6>publicclass
atnytest.nain<nytest.jaua:17>pu
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年杭州師范大學(xué)招聘65人備考題庫(冬季)帶答案詳解
- 桂林旅游學(xué)院2026年專職輔導(dǎo)員招聘備考題庫及答案詳解參考
- 三明市沙縣區(qū)2026年緊缺急需學(xué)科教育人才引進(jìn)備考題庫及答案詳解參考
- 2025年黑龍江省金融控股集團(tuán)有限公司及權(quán)屬企業(yè)招聘備考題庫及1套完整答案詳解
- 2025年廣西西林縣句町咖啡發(fā)展貿(mào)易有限公司冬季公開招聘工作人員的備考題庫及答案詳解參考
- 2025年【醫(yī)院招聘】歡迎您的加入備考題庫及參考答案詳解1套
- 2025年廈門市翔發(fā)集團(tuán)有限公司招聘備考題庫有答案詳解
- 2025年上海大學(xué)誠聘法學(xué)院院長備考題庫及完整答案詳解一套
- 2025年北滘鎮(zhèn)碧江中學(xué)招聘臨聘教師備考題庫及一套完整答案詳解
- 理課件教學(xué)課件
- 入暗股合同范本
- 2026年國家電網(wǎng)招聘之通信類考試題庫300道帶答案(考試直接用)
- 隔油池清洗合同范本
- (新教材)2026年人教版八年級下冊數(shù)學(xué) 第二十章 思想方法 勾股定理中的數(shù)學(xué)思想 課件
- 2025年軍考真題試卷及答案
- 小分子藥物的肝毒性風(fēng)險早期識別
- 2025食品行業(yè)專利布局分析及技術(shù)壁壘構(gòu)建與創(chuàng)新保護(hù)策略報告
- 2025四川省教育考試院招聘編外聘用人員15人考試筆試模擬試題及答案解析
- 會議紀(jì)要標(biāo)準(zhǔn)化撰寫格式及案例參考
- 2025年國家開放大學(xué)《刑事訴訟法》期末考試備考試題及答案解析
- 論文導(dǎo)論范文
評論
0/150
提交評論