版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
(1)構(gòu)造方法的方法名與類名相同;
Java語(yǔ)言程序設(shè)計(jì)(鄭莉)(2)構(gòu)造方法沒有返回類型(修飾符void也不能有):
第二章習(xí)題答案(3)構(gòu)造方法通常被聲明為公有的(public);
1.什么是對(duì)象、類,它們之間的聯(lián)系?(4)構(gòu)造方法可以有任意多個(gè)參數(shù):
答:1)對(duì)象是包含現(xiàn)實(shí)世界物體特征的抽象實(shí)體,它反映系統(tǒng)為(5)構(gòu)造方法的主要作用是完成對(duì)象的初始化工作;
之保存信息和與它交互的能力。對(duì)象是一些屬性及服務(wù)的封裝體,(6)構(gòu)造方法不能在程序中顯式的調(diào)用;
在程序設(shè)計(jì)領(lǐng)域,可以用“對(duì)象=數(shù)據(jù)+作用于這些數(shù)據(jù)上的操作”(7)在生成一個(gè)對(duì)象時(shí),系統(tǒng)會(huì)自動(dòng)調(diào)用該類的構(gòu)造方法為
來(lái)表示?,F(xiàn)實(shí)生活中對(duì)象是指客觀世界的實(shí)體:在程序中對(duì)象是指新生成的對(duì)象初始化。
一組變量和相關(guān)方法的集合。9如果在類聲明中聲明了構(gòu)造方法,系統(tǒng)是否還提供默認(rèn)的構(gòu)造方
2)類是既有相同操作功能和相同的數(shù)據(jù)格式的對(duì)象的集合與抽象!法?
3)兩者的關(guān)系:對(duì)象是類的具體實(shí)例答:
2.什么是面向?qū)ο蟮某绦蛟O(shè)計(jì)方法?它有那些基本特征?用戶在進(jìn)行類聲明時(shí),如果沒有聲明任何構(gòu)造方法,系統(tǒng)會(huì)賦給
答:面向?qū)ο蟪绦蛟O(shè)計(jì)從所處理的數(shù)據(jù)入手,以數(shù)據(jù)為中心而不是此類一個(gè)默認(rèn)(無(wú)參)的構(gòu)造方法。但是,只要用戶聲明了構(gòu)造方
以服務(wù)為中心來(lái)描述系統(tǒng)。它把編程問題視為?個(gè)數(shù)據(jù)集合,數(shù)據(jù)法,即使沒有聲明無(wú)參的構(gòu)造方法,系統(tǒng)也不會(huì)再賦默認(rèn)的構(gòu)造方
相對(duì)于功能而言,具有更強(qiáng)的穩(wěn)定性。法。
它的特征:抽象,封裝,繼承,多態(tài)。10:聲明Patient類表示在門診室中的病人。此類對(duì)象應(yīng)包括na
3(無(wú)用)me(astring)\sex(achar)、age(an
4.請(qǐng)解釋類屬性、實(shí)例屬性及其區(qū)別。integer)>weight(afloatO>allergies(aboolean).
答:實(shí)例屬性,由一個(gè)個(gè)的實(shí)例用來(lái)存儲(chǔ)所有實(shí)例都需要的聲明存取及修改方法。在一個(gè)單獨(dú)的累中,聲明測(cè)試方法,并生
屬性信息,不同實(shí)例的屬性值可能會(huì)不同。成兩個(gè)patient的例了,:
5.請(qǐng)解釋類方法、實(shí)例屬性及其區(qū)別。Atientapril=newPatient();
答:實(shí)例方法表示特定對(duì)象的行為,在聲明時(shí)前面不加static修飾April.setname("zhangli")
符,在使用時(shí)需要發(fā)送給一個(gè)類實(shí)例。April.setSexfT);;
類方法也稱為靜態(tài)方法,在方法聲明時(shí)前面需加static修飾April.setage(330;
符,類方法表示具體實(shí)例中類對(duì)象的共有行為。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(r/age:w+april.getage());
答:類的訪問控制符只有public(公共類)及無(wú)修飾符(默認(rèn)類)System.outprintln(/Zweught:w+april.getweight());\
兩種。System.out.println(/Zallergies:w+april.getallergies());
區(qū)別:當(dāng)使用public修飾符時(shí)表示所有其他的類都可以使用此類;聲明并測(cè)試toString()方法顯示?個(gè)病人的aga、sex、name及
當(dāng)沒有修飾符時(shí),則只有與此類處于同一包中的其他類可以使用allergies屬性。
類。答:
7類成員的訪問控制符有哪幾種?他們對(duì)類成員分別有哪些訪問限publicclassPatient
制的作用?{
答:類成員的訪問控制符有public,private,protecte及無(wú)修飾符.privateStringname;
public(公有的):用public修飾的成分表示公有的,也就是它可以被privatecharsex;
其他任何對(duì)象訪問(前提是對(duì)累成員所在的類訪問有訪問權(quán)限).privateintage;
Private(保護(hù)的):類中限定為private的成員只能被這個(gè)類本身privatefloatweight;
訪問,在類外不可見。privatebooleanallergies;
proteced(保護(hù)的)用該關(guān)鍵字修飾的成分是受保護(hù)的,只可以publicvoidsetname(Stringa)
被同一類及其子類的實(shí)例對(duì)象訪問。{
無(wú)修飾符(默認(rèn)的):public,private,protected這個(gè)三個(gè)限定符name=a;
不是必須寫的。如果不寫,則表明是“friendly",相應(yīng)的成分可以}
被所在保重的各類訪問。publicvoidsetsexfcharb)
8簡(jiǎn)述構(gòu)造方法的特點(diǎn)?{
答:構(gòu)造方法主要有以下特點(diǎn):sex=b;
)減、乘運(yùn)算。
publicvoidsetage(intc)答:publicclassComplex
((
age=c;privatefloata;
)privatefloatb;
publicvoidsetweightffloatd)publicStringtoString()
({if(a!=O)
weight=d;return(a+"i"+"+"+b);
)elsereturn(""+b);
publicvoidsetallergies(booleane)}
(publicComplexffloatajloatb)
allergies=e;{
)this.a=a;
publicStringgetname(){returnname;}this.b=b;
publicchargetsex(){returnsex;}}
publicintgetage(){returnage;}publicvoidAddfComplexp)
publicfloatgetweight(){returnweight;}{
publicbooleangetallergies(){returnallergies;}this.a+=p.a;
)this.b+=p.b;
publicclassText}
(publicvoidDecrease(Complexp)
publicstaticvoidmain(Stringargs[]){
(this.a-=p.a;
Patientapril=newPatientf);this.b-=p.b;
april.setname("ZhangLi");)
april.setsexl7');publicvoidMultiplyfComplexp)
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());publicstaticvoidmainfStringargs[])
){
)Complexa=newComplex(2z4);
hicrosoFtWindowsXP5.1.26001iplexb=newComplex(5,8);
<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:聲明并測(cè)試?個(gè)復(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是圖形化()即可視化的建模語(yǔ)言,成為面向?qū)ο蠼?/p>
的標(biāo)準(zhǔn)語(yǔ)言。
它由四部分組成:(1)視圖(2)圖(3)模型元素(4)通用
機(jī)制
13.常用的類與類之間的關(guān)系有哪兒種。
答:有關(guān)聯(lián)、依賴、流、泛化、實(shí)現(xiàn)、使用。
14.考慮學(xué)院、系及教員應(yīng)該具有哪些屬性,并畫出它們之間關(guān)
系的類圖。
第三章課后習(xí)題答案2.編寫程序,接收用戶從鍵鍵盤上輸入的三個(gè)整數(shù)x,y,z..從中選出最
1.設(shè)N為自然數(shù):大和最小者,并編程實(shí)現(xiàn)。
n!=l*2*3*....*n答:publicclassMath{
稱為n的階乘,并且規(guī)定0!=1.試編程計(jì)算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個(gè)乙杭地顯示出來(lái)aMinNum=array[i];
答:System.out.print(array[i]+"");
publicclassSu{)
publicstaticvoidmain(Stringargs[]){System.out.printlnf);
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ù)個(gè)數(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:、我的文檔、桌面Random.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ù)個(gè)數(shù)有:52
)
:\jaua>jauacSu.jaua5.接收用戶從鍵盤上輸入的兩個(gè)整數(shù),求兩個(gè)數(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個(gè)0--99之間的隨機(jī)整數(shù),找出l[i]=lnteger.parselnt(args[i]);
他們之中的最大值和最小值,并統(tǒng)計(jì)大于50的整數(shù)個(gè)數(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.println("兩個(gè)數(shù)的最大公約數(shù)為:"+n);staticBufferedReaderinputstream=new
System.out.println("兩個(gè)數(shù)的最小公倍數(shù)為: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ì)個(gè)數(shù)的最大公約數(shù)為:2
e.printStackTrace();
慚個(gè)數(shù)的馥小公倍數(shù)為:24
return0;
幟、我的文檔、桌面3aua>)
)
6.從鍵盤上輸入一件物品的價(jià)格(范圍在0.10~5.00元.),假publicstaticStringgetString(){
設(shè)用戶支付了一張5元紙幣,請(qǐng)列出?種找零的方案,使得紙幣及try(
硬幣的個(gè)數(shù)最少。如3.68元,應(yīng)為兩元一張、一元一張、五角一return(inputstream.readLine());
個(gè)、一角一個(gè)、五分一個(gè)、二分?個(gè)、一分一一個(gè)。}catch(lOExceptione){
//Price類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(b/10+”張工角
Problemsf,*,Javadoc埠Declaration且
");b-=(b/10)*10;}
〈〉
if(b/5!=0){System.out.printin(b/5+”個(gè)5分terminatedPrice[JavaApplication]D:\Progrg
");b-=(b/5)*5;}enteranumber(0.01--------5.00):
3.6S
if(b/2!=0){System.out.printin(b/2+”個(gè)2分找零如下:
");b-=(b/2)*2;}[張漢
if(b!=0)System.out.printin(b+”個(gè)1分”);1張2角
)1張T角
工個(gè)2分
)
7.什么是異常?解釋拋出、捕獲的含義。intnumber1=0,number2=0,result=0;
答:異常又稱為例外,是特殊的運(yùn)行錯(cuò)誤對(duì)象,在程序中可以強(qiáng)制
編譯器來(lái)處理程序運(yùn)行中的發(fā)生的并非由程序本身所造成的錯(cuò)誤;try(
拋出異常:把生成異常對(duì)象并提交的過(guò)程稱為拋出異常;
拋出異常是java中一個(gè)程序處理動(dòng)作,檢查異常時(shí)要么在方法中聲System.out.prinlln(〃輸入第一個(gè)數(shù)字:");
明一個(gè)異常拋出,用try-catch語(yǔ)句捕獲異常,并進(jìn)行處理。
numberl=Integer.valueOf(Keyboard.getStringO).intVal
ue0;
8.簡(jiǎn)述Java的異常處理機(jī)制。
System,out.printin(〃輸入第二個(gè)數(shù)字:");
答:java中聲明了很多異常類,每個(gè)異常類都代表了一種運(yùn)行錯(cuò)誤,
類中包含了該運(yùn)行錯(cuò)誤的信息和處理錯(cuò)誤的方法等內(nèi)容。每當(dāng)java
number2=Integer.valueOf(Keyboard.getStringO).intVai
程序運(yùn)行過(guò)程中發(fā)生一個(gè)可識(shí)別的運(yùn)行錯(cuò)誤時(shí),即該錯(cuò)誤有一個(gè)異
ue();
常類與之相對(duì)應(yīng)時(shí),系統(tǒng)都會(huì)產(chǎn)生一個(gè)相應(yīng)的該異常類的對(duì)象,即
產(chǎn)生一個(gè)異常。?旦個(gè)異常對(duì)象產(chǎn)生了,系統(tǒng)中就?定有相應(yīng)的
result=quotient(numberl,number2);
機(jī)制來(lái)處理它,確保不會(huì)產(chǎn)生死機(jī)、死循環(huán)或其他對(duì)操作系統(tǒng)的損
害,從而保證了整個(gè)程序運(yùn)行的安全性。
)
9.系統(tǒng)定義的異常與用戶自定義的異常有何不同?如何使用這兩catch(NuniberFormatExceptione){
類異常?
答:系統(tǒng)定義的特定情況出現(xiàn)的問題,而此時(shí)用來(lái)對(duì)可能遇到的問System.out.printin(e.toString());
題進(jìn)行處理。用戶定義的是自己覺得可能會(huì)出現(xiàn)問題時(shí),需要處理
System.exit(-1);
的。這樣避免程序中斷或是出現(xiàn)未知錯(cuò)誤。
系統(tǒng)異常有兩種一種是運(yùn)行時(shí)異常,一種是普通異常,普通異常要)
求用戶捕獲或者拋出的,不補(bǔ)貨或者拋出就會(huì)編譯不通過(guò)。運(yùn)行時(shí)
System,out.printIn(numberl+/z/zz+number2+/z=z,+result);
異常編譯可以通過(guò),但是運(yùn)行時(shí)才顯露出來(lái)。
)
10.用戶如何自定義異常?編程實(shí)現(xiàn)一個(gè)用戶自定義異常。
}
(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è)帶有無(wú)參構(gòu)造方法的兩個(gè)類A和B,聲明A的子類C,
并且聲明B為C的一個(gè)成員,不聲明C的構(gòu)造方法。編寫測(cè)試代
publicstaticintgetlntegerO{碼,生成類C的實(shí)例對(duì)象,并觀察結(jié)果。
HA類
try{
publicclassA{
publicA(){
return
System.out.println("輸出A類");
(Integer.valueOf(inputStream.readLine().trim()).intValue(
)
));
}
〃B類
}catch(Exceptione){
publicclassB{
publicB(){
e.printStackTrace();
System.out.println(呻俞出B類");
)
return0;
)
類
publicclassCextendsA{
Bb=newB();
}
publicstaticStringgetStringO{〃測(cè)試類
publicclasstest4_3{
try(publicstaticvoidmain(Stringargs[]){
Cc=newC();
return(inputstream.readLineO);)
)
}catch(lOExceptione){return"0〃;}運(yùn)行結(jié)果:
}IProblems@Javadoc
<terminated>test43[Java
輸出A類
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 克羅恩病診療新進(jìn)展:從機(jī)制突破到臨床實(shí)踐
- 2025年河北省公需課學(xué)習(xí)-建筑施工高處作業(yè)安全技術(shù)規(guī)范
- 2025年招錄政府專職消防文員筆試判讀題170題及答案
- 2025年泥工安全教育培訓(xùn)試題及答案
- 2025年人才引進(jìn)面談?wù)骖}及答案
- 中考藝術(shù)科目試卷及答案
- 物業(yè)崗前考試題庫(kù)及答案
- 鎮(zhèn)海中考英語(yǔ)試卷及答案
- 四川省成都市蓉城名校聯(lián)盟2024-2025學(xué)年高二上學(xué)期期中考試生物考試生物學(xué)試題
- 上海德語(yǔ)高考真題及答案
- 馬克思主義經(jīng)典著作選讀智慧樹知到課后章節(jié)答案2023年下四川大學(xué)
- 慢性阻塞性肺疾病急性加重期機(jī)械通氣
- 傳染病學(xué)智慧樹知到課后章節(jié)答案2023年下溫州醫(yī)科大學(xué)
- 濕熱滅菌驗(yàn)證方案及報(bào)告
- 工業(yè)區(qū)位因素及其變化高一地理人教版(2019)必修二
- 2022年5月CATTI英語(yǔ)三級(jí)口譯實(shí)務(wù)真題(最全回憶版)
- 畫法幾何知到章節(jié)答案智慧樹2023年浙江大學(xué)
- 少年宮剪紙社團(tuán)活動(dòng)記錄
- 生命科學(xué)前沿技術(shù)智慧樹知到答案章節(jié)測(cè)試2023年蘇州大學(xué)
- GB/T 19867.1-2005電弧焊焊接工藝規(guī)程
- 人員出車次數(shù)統(tǒng)計(jì)表
評(píng)論
0/150
提交評(píng)論