




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1.1指出JAVA語言的主要特點(diǎn)和JAVA程序的執(zhí)行過程。
答:(1)強(qiáng)類型;
(2)編譯和解釋;
(3)自動無用內(nèi)存回收功能;
(4)面向?qū)ο螅?/p>
(5)與平臺無關(guān);
(6)安全性;
(7)分布式計(jì)算;
(8)多線程;
程序執(zhí)行過程如圖所示:
編寫源文件,編譯器編譯源文件轉(zhuǎn)換成字節(jié)碼,解釋器執(zhí)行字節(jié)碼。
1.2說出開發(fā)與運(yùn)行JAVA程序的重要步驟。
答:(1)編寫源文件:使用一個文本編譯器,如Edit或記事本,不可以使用Word.將編好
的源文件保存起來,源文件的擴(kuò)展名必須是?java;
(2)編譯Java源文件:使用Java編譯器(javac.exe)編譯源文件得到字節(jié)碼文件;
(3)運(yùn)行Java程序:Java程序分為兩類一一Java應(yīng)用程序必須通過Java解釋器
(java.exe)來解釋執(zhí)行其字節(jié)碼文件;Java小應(yīng)用程序必須通過支持Java標(biāo)準(zhǔn)的瀏覽器來
解釋執(zhí)行。
1.3如何區(qū)分應(yīng)用程序和小應(yīng)用程序?
答:應(yīng)用程序在與源文件名字相同的類中,有main。方法,該方法代表應(yīng)用程序的入口;
小應(yīng)用程序必須有一個Applet類的子類,該類稱作主類,必須用public修飾。
1.4說出JAVA源文件的命名規(guī)則。
答:源文件命名規(guī)則和類命名規(guī)則一樣,所有的單詞首字母都用大寫字母,且必須和源
文件的public類同名。
1.6JAVA語言使用什么字符集?共有多少個不同的字符?
答:Java語言使用Unicode字符集,共有65535個字符。
1.7JAVA語言標(biāo)識符的命名規(guī)則是什么?
(1)由字母(包括英文字母、下劃線字符、美元字符、文字字符)和數(shù)字字符組成
(2)限定標(biāo)識符的第一個字符不能是數(shù)字字符
(3)不能和關(guān)鍵字重名
(4)長度不能超過255個字符
1.8JAVA有那些基本數(shù)據(jù)類型,它們的常量又是如何書寫的?
數(shù)據(jù)類型關(guān)鍵字字節(jié)數(shù)默認(rèn)值常量舉例范圍
邏輯
布爾型boolean1falsefalse,truefalse,true
類型
字符型char20a,我,泛0?65535
字節(jié)性byte1012,13,45-128?127
整數(shù)短整型short2012,13,45-32768?32767
類型整型int8012,13,45-2E31?2E31-1
長整型long8OL12L,13L,45L-2E63?2E63-1
-10E38?-10E-38
單精度浮點(diǎn)float4OF12.345F,6.7891F
浮點(diǎn)I0E-38?10E38
類型-10E308?-10E-308
雙精度浮點(diǎn)double8OD12,345D,6.789ID
10E-308?10E308
1.9指出下列內(nèi)容哪些是JAVA語言的整型常量,哪些是浮點(diǎn)數(shù)類型常量,哪些
兩者都不是。
整型常量:4)OxABCL,8)003,10)077,12)056L
浮點(diǎn)數(shù)類型常量:3)-lE-31,5).32E3113)0.,14).0
兩者都不是:1),2),6),7),9),11)
2
第二章運(yùn)算和語句
2.1Java的字符能參加算術(shù)運(yùn)算嗎?
可以。(1)字符與整型數(shù)據(jù)運(yùn)算,結(jié)果為整型數(shù)據(jù),只能賦給整型變量,如果附給字符
型變量會損失精度,需要強(qiáng)制類型裝換;
(2)字符與字符運(yùn)算,結(jié)果為字符型數(shù)據(jù),可以直接賦給字符型或整型變量。
2.2占字節(jié)多的變量能直接賦值給占字節(jié)少的變量么?
答:不能直接賦值,需要強(qiáng)制類型轉(zhuǎn)換。
2.3試用Java語言表達(dá)式描述以下數(shù)學(xué)計(jì)算式或邏輯條件:
1)V=(4/3)…3
解:V=(4.0/3)*Math.PI*Math.pow(r,3);
2)一=1/“居+1//f2)
解:R=1.0/(1.0/R1+1.0/R2):
3)y=x,+/+6
解:y=Math.pow(x,5)+Math.pow(x,3)+6;
4)F=M、*M』R2
解:F=1.0*Ml*M2/(R*R);
5)sin(x)/〃x+1cos(i?九/2)l
解:Math,sin(x)/a*x+Math,abs(Math,cos(*x/2));
6)0<a<10
解:a>0&&a<10
7)條件x=l與y=2有且只有一個成立.
解:(x==1&&y!=2)|I(x!=1&&y==2)
2.4設(shè)在求以下表達(dá)式之前,整型變量a的值是4,試指出在求了以下表達(dá)式之
后,變量a、b和c的值。
1)〃=。*。++;
解:a=5;b=16;
2)C=++〃+。;.
解:a=5;c=10
2.6若一個數(shù)恰好等于它的因子之和,則這個數(shù)稱為“完全數(shù)”。編寫程序求
1000之內(nèi)的所有完全數(shù)。
分析:若一個自然數(shù),它所有的真因子(即除了自身以外的約數(shù))的和恰好等于它本身,
這種數(shù)叫做完全數(shù)。例如6=1+2+3;28=1+2+4+7+14
程序運(yùn)行結(jié)果:
3
良Problemsi@Javadoc|匾Declaration后Console漢
〈terminated〉ChapterOl[JavaApplication]C:\PrograjnFil
6的因子有:1+2+3
28的因子有:1+2+4+7+14
496的因子有:1+2+4+8+16+31+62+124+248
1000以內(nèi),完全數(shù)有:6,28>496
*@author段柳敏
*/
publicclassWork2_6{
publicstaticvoidmain(String[]args){
Stringresultstring="1000以內(nèi),完全數(shù)有:,//最后結(jié)果字符串
for(inti=1;i<=1000;i++){
if(isPerfeetNumber(i)){
resultstring+=i+",n;
}
}
System.out.printIn(resultString);
)
privatestaticbooleanisPerfectNumber(intnumber){
intsum=0;//因子的和
Stringstr=newString(nn);
for(inti=1;i<number;i++){
if(number%i==0){
sum+=i;
str+=i+"+”;
}
)
if(sum==number){//如果因子之和,等于本身,則是完數(shù)
str=str.substring(0zstr.length()-1);//去掉字符串最后
個多余的''+〃;
System.out.printIn(number+”的因子有:"+str);
returntrue;
)
returnfalse;
}
)
2.7編寫輸入正實(shí)數(shù)x,求平方不超過x的最大整數(shù)n,并輸出。
程序運(yùn)行結(jié)果:
請輸入正實(shí)數(shù)X:101
請輸入正實(shí)數(shù)X:51dad
輸入非法字符,程序結(jié)束?。?!平方不超過的最大整數(shù),n=10;
請輸入正實(shí)數(shù)X:T515
輸人的數(shù)不是正實(shí)數(shù),程序結(jié)束?。?!
4
第一種命令行方式輸入
importjava.util.Scanner;
/**
*編寫輸入正實(shí)數(shù)x,求平方不超過x的最大整數(shù)n,并輸出。<BR>
*命令行方式,輸入正實(shí)數(shù),輸出結(jié)果<BR>
*@author段智敏
*/
publicclassWork2_7_l
(
publicstaticvoidmain(String[]args)
{
ScannerconsoleScanner=newScanner(System.in);
System,out.print(”請輸入正實(shí)數(shù)X:n);
Stringstr=consolescanner.next();
intnumber=-1;
try
{
number=Integer.parselnt(str);
)
catch(NumberFormatExceptione)
(
System.out.printin("輸入非法字符,程序結(jié)束!!!");
return;
)
if(number<1)
System.out.println("輸入的數(shù)不是正實(shí)數(shù),程序結(jié)束!??!”);
else
{
intn=(int)(Math.sqrt(number));
System.out.printIn("平方不超過"+number+”的最大整數(shù),n="+n+
)
)
}
第二種窗口方式輸入
運(yùn)行結(jié)果如下圖:
編寫輸入正實(shí)數(shù)X,求平方不超過x的最大整數(shù)n,并輸出。
彈出窗口方式
?author段智敏
importjavax.swing.JOptionPane;
publicclassWork2_7_2
{
privateintnumber;
publicWork2_7_2()
{
number=this.getIntegerNumber(ni-n?iwA一1個正實(shí)數(shù)”,1);
if(number<1)
5
return;//非法,程序結(jié)束
intn=(int)(Math.sqrt(number));
showR一suit("平方不超過”+number+”的最大整數(shù)\nn="+n+”;*');
)
/**
*通過圖形界面,得到符合規(guī)則的正整數(shù)的方法—
*@parammessage-在彈出的對話框中,顯示提示信息message
*@parammin-要求此數(shù)必須大于等于min
*/
publicintgetIntegerNumber(Stringmessage,intmin)
(
Stringstr=JOptionPane.showInputDialog(null,”請輸入.個正整數(shù)
“提示信息”,
JOptionPane.INFORMATION_MESSAGE);
intnumber=-1;
try
(
number=Integer.parselnt(str);//得至U輸入的正整數(shù)
)
catch(Exceptione)
(
JOptionPane.showMessageDialog(nullf”輸入非數(shù)字字符\n程序結(jié)束
“,“錯誤警告”,
JOptionPane.ERROR_MESSAGE);
return-1;//輸入的不是數(shù)字字符,程序結(jié)束
)
if(number<min)
(
JOptionPane.showMessageDialog(nullr”輸入的數(shù)不符合規(guī)則,不是正
整數(shù)\n程序結(jié)束〃,
“錯誤警告",JOptionPane.ERROR_MESSAGE);
return-1;//輸入的數(shù)不是大于2的k整數(shù)時候,程序結(jié)束
)
else
returnnumber;
)
/**
*彈出對話框,顯示結(jié)果
*@paramstr-需要顯示的字符串
*/
publicvoidshowResult(Stringstr)
{
JOptionPane.showMessageDialog(nullfstr,"輸出結(jié)果",
JOptionPane.INFORMATION_MESSAGE);
)
publicstaticvoidmain(String[]args)
(
newWork2_7_2();
)
6
2.8輸入正整數(shù)n,輸出由n行n列星號字符組成的三角形圖案。
程序運(yùn)行結(jié)果:
請輸入正整數(shù)n:N
*
**
****
*****
******
源代碼文件:Work2_8.java
importjava.util.*;
/**
*輸入正整數(shù)n,輸出由n行n列星號字符組成的三角形圖案。
*@author段智敏
*/
publicclassWork2_8
(
publicstaticvoidmain(Stringargs[])
{
ScannerconsoleScanner=newScanner(System.in);
System.out.print(”請輸入正整數(shù)n:n);
Stringstr=consolescanner.next();
intn=-1;
try
(
n=Integer.parselnt(str);
)
catch(NumberFormatExceptione)
(
System.out.printin("輸入非法字符,程序結(jié)束?。。 ?;
return;
}
if(n<1)
System.out:.printin("輸入的數(shù)不是1E實(shí)數(shù),程序結(jié)束!??!”);
else
(
for(inti=0;i<n;i++)
(
for(intj=0;j<n-i-l;j++)
{
System.out.print(n");
)
for(intk=0;k<i+l;k++)
{
System.out.print(“*");
}
System.out.printin();
}
)
)
}
7
2.9設(shè)有整型變量x和y的值分別為5和HO。試指出執(zhí)行了以下循環(huán)語句后,
變量x和y的值分別多少?
1)while(x<=y)x**=2;
解:x=160;y=110;
2)do{x=y/x;y=y-x;}while(y>=l);
解:x=18;y=0;
2.10求小于999的所有水仙花數(shù)。
程序運(yùn)行結(jié)果:
LProblems@JavadocDeclaration曰Console漢口Properties
(terminated^ChapterOl[JavaApplication]C:\ProgramFiles\Java\jdkl.6.1
1000之前的所有水仙花數(shù)有/p>
源代碼文件:Work2」0.java
/**
*求小于999的所有水仙花數(shù)
*@author段智敏
*/
publicclassWork2_10
(
publicstaticvoidmain(String[]args){
Stringresultstring=newString("1000之前的所有水仙花數(shù)有:");//用
來存結(jié)果的字符串
for(inti=100;i<999;i++)
{
if(isNarcissusNumber(i))
resultstring+=””+i;
)
System.out.printin(resultstring.substring(0,
resultstring.length()-1));
)
publicstaticbooleanisNarcissusNumber(intm)//判斷是否是水仙花數(shù)的
方法
{
intnumber=m;//把m存起來
inta[]=newint[100];//用來存n每個位上的數(shù)
intamount=0;//表示n的位數(shù)
while(m>0)//通過循環(huán)得到m每個位上的數(shù),存到數(shù)組中
{
a[amount]=m%10;
m=m/10;
amount++;
)
intsum=0;
for(intj=0;j<amount;j++)//累加每位上的數(shù)的位數(shù)次方
8
sum+=Math.pow[a[j]zamount);
)
if(number==sum)//如果累加的和等于這個數(shù)本身,則他是水仙花數(shù),返回真
returntrue;
returnfalse;
2.11編程序解百雞問題:雞翁一,值錢五;雞母一,值錢三;雞雛三,值錢一。
百錢買百雞。求雞翁、雞母和雞雛各幾何?
程序運(yùn)行結(jié)果:
雞翁:0;雞母:25;雞雛:75
國翁:4;雞母:18;雞雛:78
雞翁:8;雞母:11;雞雛:81
雞翁:12;雞母:4;雞雛:84
源代碼文件:Work2_ll.java
/★*
*雞翁一,值錢五;雞母一,值錢三;雞雛三,值錢一。<BR>
*百錢買百雞。求雞翁、雞母和雞雛各幾何。<BR>
*@author段智敏
*/
publicclassWork2_l1
(
publicstaticvoidmain(Stringargs[])
{
for(inti=0;i<=100;i++)
(
for(intj=0;j<=100;j++)
(
for(intk=0;k<=100;k+=3)//雞雛的個數(shù)必須使3的倍
數(shù)
(
if(((5*i+3*j+k/3)==100)&&(i+j+k==100))
System,out.println(“雞翁:"+i+雞母:”+j+”;
雞雛:”+k);
)
}
)
)
2.12編寫程序,按下面的公式計(jì)算自然對數(shù)底e的
值:e=l+l/l!+l/2!+l/3!+l/4!+.....
*按公式計(jì)算:e=l+l/l!+l/2!+l/3!+l/4!+.....
*@author段智敏
*/
publicclassWork2_12
(
publicstaticvoidmain(Stringargs[])
9
intn=1000;//計(jì)算精度
doublee=1.0;
for(inti=1;i<=n;i++)
(
e=e+1.0/Work2_12.factorial(i);
}
System.out.printIn(ne="+e);
}
/**
*計(jì)算階乘的靜態(tài)方法
*@param-需要計(jì)算階乘的數(shù)
*@return-最后結(jié)果
*/
staticdoublefactorial(inta)
(
doublef=1.0;
for(intj=1;j<=a;j++)
f=f*j;
returnf;
2.13編寫程序,用如下公式計(jì)算圓周率PI的近似值:PI=
4-4/3+4/5-4/7+4/9-4/11...
程序運(yùn)行結(jié)果:
計(jì)算1000000項(xiàng)后圓周率的近似值為3.1415936535907742
Tp為
3.14是第629.0項(xiàng),jT3.1400002979112887
為
3.141是第1689.0項(xiàng),3.141000236580159
為
3.1415是第10795.0項(xiàng),3.1415000095284658
為
3.14159是第376851.0項(xiàng),3.1415900000140544
源代碼文件:Work2_13.java
/**
*圓周率計(jì)算
*@author段智敏
★/
publicclassWork2_13
(
publicstaticvoidmain(Stringargs[])
{
intnum=1000000;//控制計(jì)算的項(xiàng)數(shù),越高,越準(zhǔn)確
System.out.println("用公式計(jì)算圓周率,\n計(jì)算"+num+”項(xiàng)后圓周率的
近似值為”
+Work2_13.getPai(num));
System.out.printin(n3.14+Work2_13.getIndex(3.14)+”項(xiàng),
\t\t值為:n
+Work2_13.getPai(Work2_13.getIndex(3.14)));
System,out.printin(”3.141是第”+Work2_13.getTndex(3.141)+“項(xiàng),
\t值為:”
+Work2_13.getPai(Work2_13.getIndex(3.141)));
System.out.println(H3.1415是第"+Work2_13.getIndex(3.1415)+”
10
項(xiàng),\t值為:"
+Work2_13.getPai(Work2_13.getIndex(3.1415)));
System,out:.printin(”3.14159是第”+Work2_13.getIndex(3.14159)+
"項(xiàng),\t值為:"
+Work2_13.getPai(Work2_13.getIndex(3.14159)));
/**
*根據(jù)給出的數(shù)值,得到需要計(jì)算多少項(xiàng)才能得到這個數(shù)值
*
*@param量-數(shù)值
*@return-項(xiàng)數(shù)
*/
publicstaticdoublegetlndex(doublep)
{
intr=1,num=1000000;//控制計(jì)算的項(xiàng)數(shù),越高,越準(zhǔn)確
doublei=1.0,pai=0.0,t=1.0;
while(r<num)
(
pai=pai+(4.0/i)*t;
t=-t;
i=i+2;
r++;
if(pai>=宜&&pai<=(直+0.000001))
break;
)
returnr;
)
/**
*根據(jù)給出的數(shù),按公式進(jìn)行計(jì)算圓周率
*@paramnum-公式項(xiàng)數(shù)
*@return返回按公式計(jì)算出的圓周率
*/
publicstaticdoublegetPai(doublenum)
(
intr=1;
doublei=1.0,pai=0.0,t=1.0;
while(r<num)
(
pai=pai+(4.0/i)*t;
t=-t;
i=i+2;
r++;
)
returnpai;
2.14回文整數(shù)是指正讀法和反讀相同的整數(shù),編寫一個程序,輸入一個整數(shù),
判斷他是否為回文整數(shù)。
程序運(yùn)行結(jié)果:
11
importjavax.swing.JOptionPane;
/**
*輸入整數(shù),判斷是否是回交整數(shù)
*@author段智敏
*/
publicclassWork2_14
(
privateintnumber;
publicWork2_14()
(
number=get工nt一g一:rNumb一r("輸入——個正整數(shù)n",1);//要求是>=1的整數(shù)
if(number<0)
return;
if(isPalindrome(number))
showResult("輸入的正整數(shù)+number+"”是回文數(shù)");
else
showResult("輸入的正整數(shù)+number+"〃不是回文數(shù)”);
}
/**
*判斷是否是回文數(shù)
*@paramnumber-需要判斷的正整數(shù)
*@return是回文數(shù)返回真,否則返回假
*/
publicbooleanisPalindrome(intnumber)
(
inta[]=newint[100];
inti=0;
inttest=number;
while(test>0)//把整數(shù)的各個位上的數(shù)存到數(shù)組里
{
a[i]=test%10;
test=test/10;
i++;//累計(jì)整數(shù)位數(shù)
)
for(intj=0;j<i;j++)
{
if(a[jl!=a[i-j-1])//有對應(yīng)不相等的,肯定不是,M接跳出并附
給b為false
(
returnfalse;
}
)
returntrue;//如果-iT.相等,則if巾邊的語句不能被執(zhí)彳Jb的值是true
)
/**
*通過圖形界面,得到符合規(guī)則的正整數(shù)的方法
*@parammessage-在彈出的對話框中,顯示提示信息message
*@parammin-要求此數(shù)必須大于等于min
*@return返回符合規(guī)則的整數(shù)
*/
12
publicintgetIntegerNumber(Stringmessage,intmin)
(
Stringstr=JOptionPane.showInputDialog(null,message,”提示信
息”,
JOptionPane.INFORMATION_MESSAGE);
intnumber=-1;
try
(
number=Integer.parselnt(str);//得至!J輸入的正整數(shù)
}
catch(Exceptione)
(
JOptionPane.showMessageDialog(null,"輸入非數(shù)字字符\n程序結(jié)束
”,“錯誤警告”,
JOptionPane.ERROR_MESSAGE);
return-1;//輸入的不是數(shù)字字符,程序結(jié)束
)
if(number<min)
(
JOptionPane.showMessageDialog(null,”輸入的數(shù)不符合規(guī)貝U,不是正
整數(shù)\n程序結(jié)束”,
“錯誤警告”,JOptionPan一.EKROR_MESSAGE);
return-1;//輸入的數(shù)不是大「2的小整經(jīng)時候,程不結(jié)束
)
else
returnnumber;
)
/**
*彈出對話框,顯示結(jié)果
*@paramstr-需要顯示的字符串
*/
publicvoidshowResult(Stringstr)
{
JOptionPane.showMessageDialog(null,str,"輸出結(jié)果",
JOptionPane.INFORMATION_MESSAGE);
)
publicstaticvoidmain(Stringargs[])
{
newWork2_14();
)
2.15草地上有一堆野果,有一只猴子每天吃掉這堆野果的一半又一個,5天后
剛好吃完這堆野果,求這堆野果原來共有多少個?猴子每天吃多少個野果?
程序運(yùn)行結(jié)果:
這堆野果原來共有62個
第1天吃32個
第2天吃16個
第3天吃8個
第4天吃4個
第5天吃2個
源代碼文件:Work2_15.java
*猴子吃蘋果問題
*@author段智敏
13
publicclassWork2_15
(
publicstaticvoidmain(Stringargs[])
{
inti,j,test=1;
for(i=1;i<100000;i++)
{
test=i;
for(j=0;j<5;j++)//5天
(
test=test/2-1;
}
if(test==0)//5天后野果『?數(shù)為0,則滿足要求
(
System,out.println("這堆野果原來共有“+i+"個");
break;
}
)
//打印出猴子每天吃野果子的個數(shù)
inteat;
test=i;
for(j=1;j<=5;j++)
{
eat=test/2+1;
test=test/2-1;
System.out.printIn(n?n+j+"天吃”+eat+"個
)
14
第三章面向?qū)ο缶幊袒A(chǔ)
3.1什么是面向?qū)ο蠹夹g(shù)?它有什么優(yōu)點(diǎn)?
答:面向?qū)ο蠹夹g(shù)強(qiáng)調(diào)在軟件開發(fā)過程中面向客觀世界或問題域中的事物,采用人類在
認(rèn)識客觀世界的過程中普遍運(yùn)用的思維方法,直觀、自然地描述客觀世界中的有關(guān)事物。面
向?qū)ο蠹夹g(shù)的基本特征主要有抽象性、封裝性、繼承性和多態(tài)性。
3.2面向?qū)ο蟪绦蛟O(shè)計(jì)與面向過程程序設(shè)計(jì)有什么區(qū)別?
答:面向過程程序設(shè)計(jì)關(guān)注的是函數(shù)功能的實(shí)現(xiàn);面向?qū)ο蟪绦蛟O(shè)計(jì)關(guān)注將函數(shù)和數(shù)據(jù)
如何綁定到一個對象,通過對象的描述、對象間的關(guān)系、類的管理實(shí)現(xiàn)程序的功能。
3.3程序中類和對象有什么區(qū)別?
答:類是一組對象共性的集合。類具有行為,它描述一個對象能夠做什么以及做的方法,
它們是可以對這個對象進(jìn)行操作的程序和過程。
對象是類的一個實(shí)例,它代表一個現(xiàn)實(shí)物理“事件”。
3.4類變量和實(shí)例變量,以及類方法和實(shí)例方法的區(qū)別。
加載類之前創(chuàng)建對象之后調(diào)用方法訪問權(quán)限
成各個對象之間各自分對象名.實(shí)例變量被實(shí)例方法,構(gòu)造方
實(shí)例變量不分配內(nèi)存
員配獨(dú)立的內(nèi)存空間名法訪問
變各個對象之間共享這對象名?類變量名;被實(shí)例方法,類方
類變量直接分配內(nèi)存
量段已經(jīng)分配完的內(nèi)存類名.類變量名法,構(gòu)造方法訪問
對象名.實(shí)例方法實(shí)例變量、類變量,
成實(shí)例方法不分配入口地址共享一個入口地址
名實(shí)例方法、類方法
員
方
直接分配入口地對象名.類方法名;
法類方法共享這個入口地址類變量、類方法
址類名?類方法名
3.5子類能繼承超類的哪些成員變量和方法?
同包繼承不同包繼承(import進(jìn)來的)
私有(private)不繼承不繼承
友好(缺省默認(rèn))繼承不繼承
受保護(hù)(protected)繼承繼承
共有(public)繼承繼承
15
3.6子類在什么情況下能隱藏超類的成員變量和方法?
解:子類重載父類的成員變量、方法時候。
3.7在子類中是否允許有一個方法和超類的方法名字相同,而類型不同?
解:不允許。方法重寫是指:子類中定義?個方法,并且這個方法的名字、返回類型、
參數(shù)個數(shù)、和類型與從父類繼承的方法完全相同。
3.12以下程序有什么錯誤?
解:類方法main。調(diào)用了類的實(shí)例變量,main方法是類方法,不能調(diào)用類的實(shí)例變量
a,導(dǎo)致錯誤!
3.13聲明一個復(fù)數(shù)類Complex。實(shí)現(xiàn)其基本功能。
復(fù)數(shù)類:Complex.java
/**
*復(fù)數(shù)類
*Qauthor段智敏
*/
publicclassComplex
(
privatedoublereal;//real為實(shí)部
privatedoubleimage;//image為虛部
publicComplex()
{
real=Double.NaN;
image=Double.NaN;
)
/*★
*構(gòu)造方法
*@paramreal-實(shí)部
*@paramimage-虛部
*/
publicComplex(doublereal,doubleimage)
{
this.real=real;
this.image=image;
)
/**
*取復(fù)數(shù)實(shí)部
*@return-返回復(fù)數(shù)的實(shí)部
*/
publicdoublegetReal()
{
returnreal;
)
/**
*設(shè)置復(fù)數(shù)的實(shí)部
*@paramreal-實(shí)部
★/
publicvoidsetReal(doublereal)
this.real=real;
16
)
/火*
*取復(fù)數(shù)的虛部
*@return-返回復(fù)數(shù)的虛部
*/
publicdoublegetImage()
{
returnthis.image;
)
/**
*設(shè)置復(fù)數(shù)的虛部
*@paramimage-虛部
*/
publicvoidsetimage(doubleimage)
(
this.image=image;
)
/火*
*設(shè)置實(shí)虛部
*@paramreal-實(shí)部
*@paramimage-虛部
*/
publicvoidsetComplex(doublereal,doubleimage)
{
this.real=real;
this.image=image;
)
/**
*返回該復(fù)數(shù)的字符串表示。
*@return-該復(fù)數(shù)的字符串表示形式。
*/
publicStringtoString()
{
if(real==Double.NaN&&image==Double.NaN)
return”“;
else
(
Stringresult=newString(this.real+((image>0)?”+
ffU)
+((image!=0)?this.image+"i":""));
returnresult;
)
}
/**
*復(fù)數(shù)加法,
*@paramval-另一個復(fù)數(shù)
*@return-當(dāng)前復(fù)數(shù)對象與參數(shù)指定的復(fù)數(shù)對象的和
*/
publicComplexadd(Complexval)
(
Complexresult=newComplex(this.real+val.getReal()r
this.image+val.getImage());
returnresult;
)
/**
*復(fù)數(shù)減法,當(dāng)前對象減去參數(shù)對象
*@paramval-另一個復(fù)數(shù)
*@return-當(dāng)前復(fù)數(shù)對象與參數(shù)指定的復(fù)數(shù)對象的差
17
*/
publicComplexsubtract(Complexval)//,返怛I,
{
Complexresult=newComplex(this.real-val.getReal()r
this.image-val.getImage());
returnresult;
)
/**
*復(fù)數(shù)乘法
*@paramval-另一個復(fù)數(shù)
*@return-當(dāng)前復(fù)數(shù)對象與參數(shù)指定的復(fù)數(shù)對象的積
*/
publicComplexmultiply(Complexval)
(
Complexresult=newComplex();
result.setReal(this.real*val.getReal()-this.image*
val.getImage());
result.setimage(this.real*val.getImage()+this.image*
val.getReal());
returnresult;
)
/**
*復(fù)數(shù)除法
*@paramval-另一個復(fù)數(shù)
*@return-當(dāng)前復(fù)數(shù)對象與參數(shù)指定的復(fù)數(shù)對象的商
*/
publicComplexdivide(Complexval)
{
Complexresult=newComplex();
result.setReal((this.real*val.getReal()+this.image*
val.getlmage())
/(val.getReal()*val.getReal()+val.getlmage()*
val?getlmage()));
result.setImage((this.image*val.getReal()-this.real*
val?getlmage())
/(val.getReal()*val.getReal()+val.getlmage()*
val.getlmage()));
returnresult;
)
}
復(fù)數(shù)測試類:TestComplex.java
.序運(yùn)行結(jié)果:
復(fù)數(shù)1:2.0+4.0ij實(shí)部2.0;虛部4.0
復(fù)數(shù)2:3.0-1.01;實(shí)部3.0;虛部-1.0
,復(fù)數(shù):2.0+4.0i與復(fù)數(shù):3.0-1.01之和為:5.0+3.01
復(fù)數(shù):2.0+4.0i與復(fù)數(shù):3.0-1.0i之差為:-1.0+5.01
復(fù)數(shù):2.0+4.0i與復(fù)數(shù):3.0-l.Oi的乘積為:10.0+10.0i
復(fù)數(shù):2.0+4.01與復(fù)數(shù):3.0-1.01的商為:0.2+1.41
/★★
*復(fù)數(shù)測試類
*^author段智敏
publicclassTestComplex
(
publicstaticvoidmain(String[]args)
18
Complexcomplexl=newComplex(2Z4);
Complexconiplex2=newComplex(3,-1);
Complexresult=newComplex();
System,out.printin(1:+complexl.toString()實(shí)部“+
complexl.getReal()+";虛部”
+complexl.getlmage());
System,out.printIn(2:+complex2.toString()實(shí)部”+
complex2.getReal()+”;虛部”
+complex2.getlmage());
result=complexl.add(complex2);//
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 清廉課題申報書怎么寫
- 科研課題申報書抄襲
- 別墅擴(kuò)建土建合同范本
- 衛(wèi)浴勞動合同范本
- 音樂 課題申報書
- 國家立項(xiàng)課題申報書
- 合同附合同范本
- 單項(xiàng)委托預(yù)定酒店合同范本
- 養(yǎng)殖土雞合同范本
- 中環(huán)租房合同范本
- 感染性腹瀉及其防控措施
- 豐田車系卡羅拉(雙擎)轎車用戶使用手冊【含書簽】
- 商品價格表(全)
- 管理系統(tǒng)中計(jì)算機(jī)應(yīng)用詳細(xì)課件
- 《多維度兒童智力診斷量表》MIDSC的編制
- 慢阻肺從急性加重期到穩(wěn)定期的全程管理
- 2023年上海市普陀區(qū)高考?xì)v史二模試卷及答案解析
- 瑞達(dá)峰環(huán)境友好型高附加值關(guān)鍵醫(yī)藥中間體、特色原料藥及 GMP 成品藥(仿制藥與創(chuàng)新藥)規(guī)?;a(chǎn)項(xiàng)目(一期)環(huán)評報告書
- 嚴(yán)重創(chuàng)傷的急救處理
- GB/T 1228-2006鋼結(jié)構(gòu)用高強(qiáng)度大六角頭螺栓
- 國際商法 吳建斌課件 思考題答案
評論
0/150
提交評論