




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
課后作業(yè)
第一章Java語(yǔ)言基礎(chǔ)知識(shí)
i.程序設(shè)計(jì)語(yǔ)言發(fā)展的歷程
答案:機(jī)器語(yǔ)言、匯編語(yǔ)言、高級(jí)語(yǔ)言、面向?qū)ο蟮恼Z(yǔ)言
2.面向?qū)ο笳Z(yǔ)言的基本特征
答案:抽象和封裝、繼承性、多態(tài)性
3.Java語(yǔ)言的特點(diǎn)
答案:java語(yǔ)言是一種卓越的程序設(shè)計(jì)語(yǔ)言,它具有以下特點(diǎn)。
1.面向?qū)ο?.簡(jiǎn)單性3.可移植性4.穩(wěn)定性和安全性5.高性能6?分布
性
4.為什么Java語(yǔ)言是跨平臺(tái)的?
答案:因?yàn)镴ava程序的最終實(shí)現(xiàn)需要經(jīng)過(guò)編譯和解釋兩個(gè)步驟,Java語(yǔ)言的
編譯器生成可執(zhí)行的字節(jié)碼,這種代碼是由Java虛擬機(jī)生成的,它與任何硬件
平臺(tái)無(wú)關(guān)。當(dāng)生成字節(jié)碼后,再使用Java解釋器來(lái)執(zhí)行字節(jié)碼,這也就意味著
只要有安裝Java解釋器的機(jī)器Java程序都可以運(yùn)行,所以它是跨平臺(tái)的面向
對(duì)象的程序設(shè)計(jì)語(yǔ)言。
5.Java2的SDK是什么?
答:Java2的SDK指SoftwareDevelopmentKit軟件開(kāi)發(fā)工具集
6.Java開(kāi)發(fā)工具中的javac.exe和java.exe的功能是什么?
答案:Javac.exe是Java編譯器,用來(lái)將java程序編譯成字節(jié)碼。
Java,exe是Java解釋器,執(zhí)行已經(jīng)轉(zhuǎn)換成Bytecode的java應(yīng)用程序。
7.Java集成開(kāi)發(fā)環(huán)境有哪些?
答案:Java集成開(kāi)發(fā)環(huán)境主要有:Eclipse^netBeans、JcreatorLE>Borland
Jbuilder^MicrosoftVisualJ++、IBM:VisualAgeforJava^SunONEStudio
8.Java程序編譯執(zhí)行的過(guò)程
答案:Java語(yǔ)言源程序的變異過(guò)程主要進(jìn)行兩件工作:
1.通過(guò)編譯程序檢查Java源程序中是否有語(yǔ)法錯(cuò)誤,如果發(fā)現(xiàn)錯(cuò)誤,便
報(bào)告已發(fā)現(xiàn)的錯(cuò)誤,修改后再編譯,直到未發(fā)現(xiàn)錯(cuò)誤時(shí)才生成字節(jié)碼文
件。
2.通過(guò)編譯來(lái)引入Java類庫(kù)中已編好的模塊,為了方便編程,Java類庫(kù)
中有若干個(gè)包,每個(gè)包中有若干個(gè)模塊,每個(gè)模塊是一個(gè)具有某種功能的
類,它們都是字節(jié)碼形式的程序。
9.Application有哪些特點(diǎn)?如何運(yùn)行Application程序?
答案:1.JavaApplication程序結(jié)構(gòu)上的特點(diǎn)
a.程序名必須與主類名相同。
b.Java程序師區(qū)分大小寫字母的。
c.Java程序中的所有方法都是屬于某個(gè)類的,沒(méi)有不屬于某個(gè)類的方
法。
2.Java程序在書寫上的特點(diǎn)
a.使用的變量名、對(duì)象名、方法名等標(biāo)示符要有意義,盡量做到“見(jiàn)名
知義”。
b.使用空行來(lái)分隔不相關(guān)的語(yǔ)句。
c.合理進(jìn)行縮進(jìn)和對(duì)齊,使得程序顯得層次分明。
d.一條語(yǔ)句寫一行,長(zhǎng)語(yǔ)句可以續(xù)行。
e.適當(dāng)在程序中寫一些注釋信息,有利于程序的可讀性。
JavaApplication程序與其他高級(jí)語(yǔ)言編寫的程序一樣,都需要經(jīng)過(guò)編輯、
編譯、運(yùn)行等幾個(gè)步驟。
a.編輯Java源程序
b.編譯Java源程序
c.運(yùn)行Java的字節(jié)碼文件
10.編寫Application程序,計(jì)算并輸出sinlOx+ctgx在x=3.5的值。
答案:publicclasslianxi
publicstaticvoidmain(String[]args){
inty;
floatx=(float)3.5;
y=(int)(Math.pohz(Math.sin(x)z10)+1/Math.tan(x));
/**注意數(shù)據(jù)類型,用int強(qiáng)制轉(zhuǎn)換*/
System.out.printin(ny=H+y);
}
)
11.編寫Application程序,將數(shù)組a[]={20,10,50,40,30,70,60,80,90,100}
按逆序輸出。
答案:publicclasslianxi
publicstaticvoidmain(String[]args)
(
intIntArray[]={20,10,50,40,30,70,60,80z90z100);
inti;
for(i=9;i>=0;i--)
System.out.printIn("IntArray[n+i+**]=n+IntArray[i]);
)
}
第二章類與對(duì)象的基本概念
1.結(jié)構(gòu)化程序設(shè)計(jì)的特征
答案:結(jié)構(gòu)化語(yǔ)言的顯著特征是代碼和數(shù)據(jù)的分離,通常由若干個(gè)程序模
塊組成,每個(gè)程序模塊都可以是子程序或函數(shù),數(shù)據(jù)和功能分離,代碼難
于維護(hù)和復(fù)用
2.面向?qū)ο蟪绦蛟O(shè)計(jì)的特征
答案:面向?qū)ο蟮某绦蛟O(shè)計(jì)方法更符合人們認(rèn)識(shí)客觀世界的思維習(xí)慣,降低了
問(wèn)題難度和分解問(wèn)題大的復(fù)雜性;提高了程序代碼的重用性,簡(jiǎn)化了編程的過(guò)
程;可以以較小的代價(jià)和較高的效率獲得滿意的效果。
3.抽象、封裝、繼承、多態(tài)的概念
答案:抽象是從眾多的事物中抽取出共同的、本質(zhì)性的特征,而舍棄其非
本質(zhì)的特征。
封裝是指將描述某種實(shí)體的數(shù)據(jù)和基于這些數(shù)據(jù)的操作集合到一起,形
成一個(gè)封裝體。
繼承是面向?qū)ο蠓椒ㄖ械闹匾匦裕^承反映了兩個(gè)類之間的一種關(guān)系。
多態(tài)是指在程序中出現(xiàn)的“重名”現(xiàn)象,在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,為
提高程序的抽象程度和簡(jiǎn)潔程度,而出現(xiàn)“重名”現(xiàn)象。
4.類和對(duì)象的概念
答案:類是一種自定義的數(shù)據(jù)類型,通常又稱為類類型。是同種對(duì)象的集合,
對(duì)現(xiàn)實(shí)世界種的實(shí)體的高度抽象。
對(duì)象就是對(duì)客觀世界中的實(shí)體的映射。
5.如何定義類
答案:定義類的格式
[〈修飾符>]class<類名>[extends〈父類名>][impleinents<接口名>]
6.數(shù)據(jù)成員的可選修飾符有哪些?實(shí)例變量和類變量有何區(qū)別?
答案:public、protected、private>static、final、transient
volatile
7.方法成員的可選修飾符有哪些?實(shí)例方法和類方法有何區(qū)別?
答案:public、protected、private、static、final、abstract、native>
synchronized
8.構(gòu)造方法的作用和特點(diǎn)、this關(guān)鍵字的作用。
答案:構(gòu)造方法是一種特殊的方法,其功能是對(duì)創(chuàng)建的對(duì)象初始化。
特點(diǎn):方法名同類名、無(wú)返回類型、構(gòu)造方法是在創(chuàng)建對(duì)象時(shí),系統(tǒng)自
動(dòng)調(diào)用為所創(chuàng)建的對(duì)象進(jìn)行初始化的方法。
9.如何創(chuàng)建對(duì)象和調(diào)用成員
答案:首先,說(shuō)明對(duì)象。
其次,使用運(yùn)算符new給說(shuō)明的對(duì)象分配內(nèi)存單元。
最后,為對(duì)象初始化。
10.如何創(chuàng)建軟件包
答案:創(chuàng)建包使用package語(yǔ)句,該語(yǔ)句應(yīng)該是Java程序文件的首條語(yǔ)句。
使用該語(yǔ)句指明該文件中定義的類所在的包。
11.Java如何實(shí)現(xiàn)內(nèi)存回收
答案:當(dāng)一個(gè)對(duì)象在程序中不再被使用時(shí),就成為一個(gè)無(wú)用對(duì)象,Java運(yùn)行時(shí)
系統(tǒng)通過(guò)垃圾收集器周期性地釋放無(wú)用對(duì)象所使用的內(nèi)存,Java運(yùn)行時(shí)系統(tǒng)會(huì)
在對(duì)對(duì)象進(jìn)行自動(dòng)垃圾回收前,自動(dòng)調(diào)用對(duì)象的finalize。方法
12、定義Student類
①屬性
id:long類型,表示學(xué)號(hào)
name:String對(duì)象,表示一個(gè)人的姓名
sex:char類型,表示性別
②方法
publicvoidsetld(longid):設(shè)置學(xué)號(hào)
publiclonggetld():返回學(xué)號(hào)
publicStringgetName():返回姓名
publicvoidsetName(Stringname):設(shè)置姓名
publicchargetSex():返回性別
publicvoidsetSex(charsex):設(shè)置性別
答案:
packageexample;
publicclassStudent{
privatelong工d;//學(xué)號(hào)
privateStringName;//姓名
privatecharSex;//性別
publiclonggetId(){
returnId;
)
publicvoidsetId(longid){
Id=id;
}
publicStringgetName(){
returnName;
)
publicvoidsetName(Stringname){
Name=name;
}
publicchargetSex(){
returnSex;
)
publicvoidsetSex(charsex){
Sex=sex;
13、創(chuàng)建Application程序類TestStudent完成如下測(cè)試功能:
(1)用以下信息生成一個(gè)Student對(duì)象aGirl
學(xué)號(hào):2503123
姓名:李麗
性別:女
(2)調(diào)用aGirl的get方法輸出aGirl的信息,格式如下:
學(xué)號(hào):2503123姓名:李麗性別:女
答案:
packageexample;
importexample.student;
publicclassTestStudent{
publicstaticvoidmain(String[]args){
studentaGirl=newstudent();
aGirl.setId(2503123);
aGirl.setName("李麗”);
aGirl.setSex「女,);
System.out.print("學(xué)號(hào):"+aGirl.getId()+”n);
System.out.print("姓名:n+aGirl.getName()+”H);
System.out.printIn("性別:M+aGirl.getSex());
)
)
第三章類的方法
1、Java中選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的實(shí)現(xiàn)
2、Java的異常的處理機(jī)制
答案:
1.拋出(throw)異常
在方法的運(yùn)行過(guò)程中,如果發(fā)生了異常,則該方法生成一個(gè)代表該異常的對(duì)象
并把它交給運(yùn)行時(shí)系統(tǒng),運(yùn)行時(shí)系統(tǒng)便尋找相應(yīng)的代碼來(lái)處理這一異常。
2.捕獲(catch)異常
運(yùn)行時(shí)系統(tǒng)在方法的調(diào)用棧中查找,從生成異常的方法開(kāi)始進(jìn)行回溯,直到找
到包含相應(yīng)異常處理的方法為止。
3、方法的重載
答案:方法重載是指功能相同的多個(gè)方法使用同一個(gè)方法名。
4、編寫Application程序類ArrayApp,實(shí)現(xiàn)如下輸出:
Xsin(x)cos(x)
00.01.0
100.170.98
200.340.94
300.50.87
400.640.77
500.770.64
600.870.5
700.940.34
800.980.17
901.00.0
答案:
packageexample;
importjava.text.DecimalFormat;
importjava.text.NumberFormat;
publicclassArrayApp{
/**
*@param<DecDecimalFormat>
*@paramargs
publicstatic<DecDecimalFormat>voidmain(String[]args){
finalintArrayX[]={0,10,20,30,40,50,60,70,80,90};
inti;
doublerad=0;//弧度變量
finalDecimalFormatnf=newDecimalFormat('*0.00n);
System.out.printIn(nXM+MH+Msin(x)H+nH+Mcos(x)n);
for(i=0;i<=9;i++)
{rad=ArrayX[i]*Math.PT/180;
System.out.printin(ArrayX[i]+""+((NumberFormat)
nf).format(Math.sin(rad))+””+((NumberFormat)
nf),format(Math.cos(rad)));}
)
5、在項(xiàng)目中添加一個(gè)shape包的Rectangle類,其中包括:
①兩個(gè)私有屬性即寬:width和高:height(double型)。一個(gè)靜態(tài)最終公有屬性:
name,String類型,取值為“矩形類”.
②在Rectangle類中添加一個(gè)無(wú)參構(gòu)造函數(shù)和一個(gè)帶兩個(gè)參數(shù)的構(gòu)造函數(shù)(給兩
個(gè)屬性賦初值)。
publicRectangle(){}
publicRectangle(doublewidth,doubleheight){}
③在Rectangle類中添加所有屬性的get和set方法
④在Rectangle類中添加兩個(gè)方法計(jì)算矩形的周長(zhǎng)和面積。
publicdoubleperimeter。{}〃計(jì)算周長(zhǎng)
publicdoublearea(){}〃計(jì)算面積
6、在項(xiàng)目中添加Application程序類RectangleTester類,在程序中實(shí)現(xiàn)如下功能:
⑴利用無(wú)參構(gòu)造函數(shù)創(chuàng)建對(duì)象rl,用set方法設(shè)置rl的寬和高分別為10.2,2.3,然
后調(diào)用rl的perimeter。輸出該矩形的周長(zhǎng)。格式如下:第個(gè)矩形周長(zhǎng):25.0
(2)利用有參構(gòu)造函數(shù)創(chuàng)建寬為12.3,高為32.1的矩形對(duì)象r2,然后調(diào)用r2的area。
{}輸出該矩形的周長(zhǎng)。格式如下:第:個(gè)矩形面積:394.83000000000004
答案:
packageshape;
publicclassRectangle{
privatestaticdoublewidth;
privatestaticdoubleheight;
privatestaticStringname;
publicRectangle(){)
publicRectangle(doublewidth,doubleheight){
Rectangle.width=width;
Rectangle.heigrht=height;
Rectangl一.n1ame="矩形類”;
)
publicdoubleperimeter()
(
return(width+height)*2;
}
publicstaticdoublearea()
(
returnwidth*height;
}
publicdoublegetWidth(){
returnwidth;
}
publicvoidsetwidth(doublewidth){
Rectangle.width=width;
}
publicdoublegetHeight(){
returnheight;
}
publicvoidsetHeight(doubleheight){
Rectangle.height=height;
}_______
publicstaticStringgetName(){
returnname;
}
publicstaticvoidsetName(Stringname){
Rectangle.name=name;
}
}
packageshape;
publicclassRectangleTester{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
Rectanglerl=newRectangle();
r1.setwidth(10.2);
rl,setHeight(2.3);
System,out:?printIn("第一個(gè)矩;/診周長(zhǎng):n+rl.perimeter());
System.out.printlnO;
newRectangle(12.3,32.1);
System.out.printIn(Rectangle.area());
}
第四章類的重用
1、類的繼承、基類和派生類、子類和父類概念
答案:類的繼承:一種由已有的類創(chuàng)建新類的機(jī)制。
基類:也稱超類(superclass)是被直接或間接繼承的類。
派生類:也稱子類(subclass)繼承其他類而得到的類
父類:是所有子類的公共屬性及方法的集合。
子類:則是父類的特殊化。
2、屬性的隱藏、方法覆蓋
答案:子類中聲明了與父類中相同的成員變量名,則從父類繼承的變量將被隱
藏。
如果子類不需使用從父類繼承來(lái)的方法的功能,則可以聲明自己的同名
方法,稱為方法覆蓋。
3、繼承時(shí)的構(gòu)造方法
答案:
a)子類不能從父類繼承構(gòu)造方法
b)好的程序設(shè)計(jì)方法是在子類的構(gòu)造方法中調(diào)用某一個(gè)父類構(gòu)造方法,調(diào)
用語(yǔ)句必須出現(xiàn)在子類構(gòu)造方法的第一行,可使用super關(guān)鍵字
C)如子類構(gòu)造方法的聲明中沒(méi)有明確調(diào)用父類構(gòu)造方法,則系統(tǒng)在執(zhí)行子
類的構(gòu)造方法時(shí)會(huì)自動(dòng)調(diào)用父類的默認(rèn)構(gòu)造方法(即無(wú)參的構(gòu)造方法)
4、Object類和常用方法
答案:Java程序中所有類的直接或間接父類,類庫(kù)中所有類的父類,處在類層
次最高點(diǎn)。
5、終結(jié)類、終結(jié)屬性與終結(jié)方法的概念和特點(diǎn)
6、抽象類、抽象方法的概念和特點(diǎn)
7、類的組合、組合與繼承的比較
8、語(yǔ)言包(java.lang)的應(yīng)用:數(shù)據(jù)包裹類(Integer類)、字符串類、StringBuffer
類
9、實(shí)用包(java.util)的應(yīng)用:Date類和Calendar類
10>文*包(java.text)的應(yīng)用:SimpleDateFormat類
11、創(chuàng)建Student類,屬性包括學(xué)號(hào),姓名,英語(yǔ)成績(jī),數(shù)學(xué)成績(jī),方法testScore方法(計(jì)
算測(cè)評(píng)成績(jī),測(cè)評(píng)成績(jī)=二門課平均分)
答案:
publicclassstudent{
privateintNo;
privateStringName;
privatelloatEnglishScore;
privatefloatMathsScore;
privatefloatCPScore;
student(intn,Stringna,floate,floatm){
No=n;
Name=na;
EnglishScore=e;
MathsScore=m;
)
publicfloattestScore(){
CPScore=(EnglishScore*MathsScore)/2;
returnCPScore;
)
publicstaticvoidmain(String[]args){
studentsi=newstudent(01,"zhangsanM,80,90);
sl.testScore();
12>創(chuàng)建StudentXW(學(xué)習(xí)委員)類為Student類的子類,在StudentXW類中重寫testScore方
法(計(jì)算測(cè)評(píng)成績(jī),測(cè)評(píng)成績(jī)=二門課平均分+3)
答案:
packageshape;
publicclassStudentXWextendsStudent{
publicfloattestScore(){
Score=(EnScore+MaScore)/2+3;
returnScore;
}
}
13、創(chuàng)建測(cè)試類Ex4_l,生成一個(gè)Student對(duì)象(學(xué)生信息:050101001,張三,76,84),一
個(gè)StudentXW對(duì)象(學(xué)生信息:050101002,李四,86,84)、分別計(jì)算并輸出他們的評(píng)
測(cè)評(píng)成績(jī)。
|姓名:張三測(cè)評(píng)成績(jī):80.0
I姓名:李四測(cè)評(píng)成績(jī):88.0
答案:
packageshape;
publicclassTeststudent{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Studentaboy=newStudent();
aboy.Id=050101001;
aboy.Name="張三'*;
aboy,EnScore=76;
aboy.MaScore=84;
System.out.printin("姓名:"+aboy.Name+“"+”測(cè)評(píng)成績(jī):
n+aboy.testScore());
StudentXWaboy2=newStudentXW();
aboy2.Id=050101002;
aboy2,Name="李四,
aboy2.EnScore=86;
aboy2.MaScore=84;
System.out.printin("姓名:n+aboy2.Name+n”+”測(cè)評(píng)成績(jī):
n+aboy2.testScore());
}
14、創(chuàng)建Application程序類ArrayApp,實(shí)現(xiàn)如下輸出:
Xsin(x)cos(x)
00.01.0
100.170.98
200.340.94
300.50.87
400.640.77
500.770.64
600.870.5
700.940.34
800.980.17
901.00.0
15、修改上述程序,改用DecimalFormat類控制輸出格式(參看第2章課件第120張幻燈片),
使輸出如下:
X
Osin(x)L000
1O0.000985
2O0.174O.940
3O0.342O.866
4O0.500O.766
5O0.643O.643
6O0.766O.500
7O0.866O.342
8O0.940O.174
9O0.985O.000
1.000O.
答
二
packageexample;
importjava.text.DecimalFormat;
importjava.text.NumberFormat;
publicclassArrayApp{
/**
*@param<DecDecimalFormat>
*@paramargs
*/
publicstatic<DecDecimalFormat>voidmain(String[]args){
finalintArrayX[]={0,10,20,30,40,50,60,70,80,90};
inti;
doublerad=0;//弧度變量
finalDecimalFormatnf=newDecimalFormat(n0.000n);
System.out.printin(nXn+n”+”sin(x)n+Hcos(x)");
for(i=0;i<=9;i++)
{rad=ArrayX[i]*Math.PI/180;
System.out.printIn(ArrayX[i]+""+((NumberFormat)
nf).format(Math.sin(rad))+””+((NumberFormat)
nf),format(Math.cos(rad)));}
)
}
第五章接口與多態(tài)
1、接口的作用
答案:是面向?qū)ο蟮囊粋€(gè)重要機(jī)制,實(shí)現(xiàn)多繼承,同時(shí)免除C++中的多繼承那
樣的復(fù)雜性,建立類和類之間的“協(xié)議”。
2、接口的定義
答案:與抽象類一樣都是定義多個(gè)類的共同屬性,使抽象的概念更深入了一層,
是一個(gè)“純”抽象類,它只提供一種形式,并不提供實(shí)現(xiàn)。
3、如何使用接口
答案:接口不能用new運(yùn)算符直接產(chǎn)生對(duì)象,必須利用其特性設(shè)計(jì)新的類,再
用新類來(lái)創(chuàng)建對(duì)象,利用接口設(shè)計(jì)類的過(guò)程,稱為接口的實(shí)現(xiàn),使用
implements關(guān)鍵字
4、塑型的概念
答案:又稱為類型轉(zhuǎn)換,如果是基本數(shù)據(jù)類型就是將值從一種形式轉(zhuǎn)換成另一
種形式;如果是引用變量將對(duì)象暫時(shí)當(dāng)成更一般的對(duì)象來(lái)對(duì)待,并不改
變其類型。
5、多態(tài)概念和作用
答案:多態(tài)是指不同類型的對(duì)象可以響應(yīng)相同的消息,從相同的基類派生出來(lái)
的多個(gè)類型可被當(dāng)作同一種類型對(duì)待,可對(duì)這些不同的類型進(jìn)行同樣的
處理,由于多態(tài)性,這些不同派生類對(duì)象響應(yīng)同一方法時(shí)的行為是有所
差別的。
作用:所有的對(duì)象都可被塑型為相同的類型,響應(yīng)相同的消息;使代碼變得簡(jiǎn)
單且容易理解,使程序具有很好的“擴(kuò)展性”。
6、構(gòu)造函數(shù)的調(diào)用順序
答案:調(diào)用基類的構(gòu)造方法。這個(gè)步驟會(huì)不斷重復(fù)下去,首先得到構(gòu)建的是分
級(jí)結(jié)構(gòu)的根部,然后是下一個(gè)派生類,等等。直到抵達(dá)最深一層的派生
類。按聲明順序調(diào)用成員初始化模塊,調(diào)用派生構(gòu)造方法。
7、創(chuàng)建Shape2D接口。
interfaceShape2D{//聲明Shape2D接口
doublepi-3.14;//數(shù)據(jù)成員--定要初始化
doubleareaO;//抽象方法,不需要定義處理方式
)
思考:
?為何接口是一個(gè)“純”抽象類?
?接口如何隱藏實(shí)現(xiàn)細(xì)節(jié)?
?為何上述接口中的pi值不能改變?
8.創(chuàng)建Circle類,實(shí)現(xiàn)Shape2D接口
classCircleimplementsShape2D
(
doubleradius;
publicCircle(doubler)
(
radius=r;
)
publicdoublearea()
return(pi*radius*radius);
)
思考:
?Circle類實(shí)現(xiàn)了Shape2D接口是如何體現(xiàn)的?
9.創(chuàng)建Rectangle類,實(shí)現(xiàn)Shape2D接口
classRectangleimplementsShape2D
(
intwidth,height;
publicRectangle(intw,inth)
(
width=w;
height=h;
)
publicdoublearea()
(
return(width*height);
)
)
思考:
?去除卜列代碼后,結(jié)果會(huì)怎樣?為什么?
publicdoublearea()
(
return(width*height);
)
10.創(chuàng)建InterfaceTester測(cè)試類。
publicclassInterfaceTester{
publicstaticvoidmain(Stringargs[]){
Rectanglerect=newRectangle(5,6);
System.out.println("Areaofrect="+rect.area());
Circlecir=newCircle(2.0);
System.out.println("Areaofcir="+cir.area());
)
)
思考:
?如何理解接口能使在看起來(lái)不相干的對(duì)象之間定義共同行為?
第六章輸入/輸出流和文件
1、I/O流的概念以及分類
答案:在Java中將信息的輸入與輸出過(guò)程抽象為I/O流
輸入是指數(shù)據(jù)流入程序;輸出是指數(shù)據(jù)從程序流出
輸入/輸出流可以從以下幾個(gè)方面進(jìn)行分類
從流的方向劃分:輸入流和輸出流
從流的分工劃分:節(jié)點(diǎn)流和處理流
從流的內(nèi)容劃分:面向字符的流和面向字節(jié)的流
2、讀寫文本文件、二進(jìn)制文件的方法
3、處理流的概念及用法
4、File類及用法
答案:表示磁盤文件信息
定義了一些與平臺(tái)無(wú)關(guān)的方法來(lái)操縱文件:創(chuàng)建、刪除文件、重命名文
件,判斷文件的讀寫權(quán)限及是否存在,設(shè)置和查詢文件的最近修改時(shí)間
等。構(gòu)造文件流可以使用File類的對(duì)象作為參。
5^創(chuàng)建Application程序類FileTest.java,實(shí)現(xiàn)如下功能,從鍵盤輸入若
干個(gè)字符串,寫入文件c:\data.txt,然后再?gòu)脑撐募兄饌€(gè)讀出字符輸
出,遇到空格即換行。
答案:
packageexample;
importjava.io.
publicclassFileTest{
/**
*@paramargs
★/
publicstaticvoidmain(String[]args)throwslOException{
//TODOAuto-generatedmethodstub
U1
StringfileName=C:Wdata.txt'rline;
try(
FileWriterwriter=newFileWriter(fileName);
System.out.printIn(ninputthestring:n);
BufferedReaderin=newBufferedReader(new
InputStreamReader(System.in));
writer.write(in.readLine());
writer.close();
BufferedReaderout=newBufferedReader(new
FileReader(fileName));
line=out.readLine();//讀取一彳了內(nèi)容
System.out.printIn(noutputcharacter:n);
while(line!=null)
System.out.printIn(line);
line=out.readLine();
}
out.close();
}
catch(lOExceptioniox){
System.out.printIn("Problemreading”+fileName);
)
)
第七章對(duì)象群體的組織
1、群體數(shù)據(jù)的組織以及Java的集合框架
2、數(shù)組、Collection、Map的區(qū)別以及優(yōu)缺點(diǎn)
答案:
數(shù)組的優(yōu)點(diǎn):是Java提供的隨機(jī)訪問(wèn)對(duì)象序列的最有效方法
是一個(gè)簡(jiǎn)單的線性序列,訪問(wèn)元素的速度較快
數(shù)組的缺點(diǎn):大小自創(chuàng)建以后就固定了,在其整個(gè)生存期內(nèi)其大小不可改
變,數(shù)組元素只能是同一類型
集合
可動(dòng)態(tài)改變其大小
可在序列中存儲(chǔ)不同類型的數(shù)據(jù)
3、Arrays類、Vector類、Enumeration接口、Iterator接口、HashTable
類的用法
4、添加Lx7_l.java類,從鍵盤逐行輸入若干個(gè)字符串,以“end”為結(jié)束,
把輸入的字符串存放在向量對(duì)象中,然后把這些字符串逆序輸出。
第八章線程
1.線程的概念
答案:一個(gè)程序中多段代碼同時(shí)并發(fā)執(zhí)行,稱為多線程
2.如何通過(guò)Thread類和Runnable接口創(chuàng)建線程
答案:在Java程序中創(chuàng)建多線程的方法之一是繼承Thread類,封裝了Java
程序中一個(gè)線程對(duì)象需要擁有的屬性和方法。從Thread類派生一個(gè)子類,
并創(chuàng)建這個(gè)子類的對(duì)象,就可以產(chǎn)生一個(gè)新的線程。
實(shí)現(xiàn)Runnable接口的類的對(duì)象可以用來(lái)創(chuàng)建線程,這時(shí)start方法啟動(dòng)
此線程就會(huì)在此線程上運(yùn)行run()方法
在編寫復(fù)雜程序時(shí)相關(guān)的類可能已經(jīng)繼承了某個(gè)基類,而Java不支持多
繼承,在這種情況下,便需要通過(guò)實(shí)現(xiàn)Runnable接口來(lái)生成多線程
3.掌握線程同步的方法
答案:Java使用的同步機(jī)制是監(jiān)視器
a)每個(gè)對(duì)象都只有一個(gè)“鎖旗標(biāo)”與之相連,利用多線程對(duì)其的爭(zhēng)奪可
實(shí)現(xiàn)線程間的互斥操作
b)當(dāng)線程A獲得了一個(gè)對(duì)象的鎖旗標(biāo)后,線程B必須等待線程A完成規(guī)
定的操作、并釋放出鎖旗標(biāo)后,才能獲得該對(duì)象的鎖旗標(biāo),并執(zhí)行線
程B中的操作
4.線程優(yōu)先級(jí)的概念,以及基于優(yōu)先級(jí)的線程調(diào)度
5、指出Ex8」2程序的運(yùn)行結(jié)果:
publicclassEx8_12
(
publicstaticvoidmain(String[]args)throwslOException
(
TestThreadt=newTestThread();
t.start();
newBufferedReader(newInputStreamReader(System,in)).readLineO;〃等待
鍵盤輸入
t.stopme();〃調(diào)用stopme方法結(jié)束t線程
)
)
classTestThreadextendsThread
(
privatebooleanflag二true;
publicvoidstopme()〃在此方法中控制循環(huán)條件
(
flag=false;
)
publicvoidrun()
(
inti=0;
while(flag)
{
System.out.printin(i++);〃如果flag為真則一直顯示遞增
}
5、指出Ex8_3程序的運(yùn)行結(jié)果:
答案:一直顯示遞增整數(shù)
publicclassEx8_3
(
publicstaticvoidmain(String[]args)
{
System,out.println(,/mainthreadstarts");
FactorialThreadt=newFactorialThread(lO);
newThread(t).start();
System,out.printin(z/newthreadstarted,mainthreadends〃);
}//endmain
//classFactorialThreadcontrolsthreadexecution
classFactorialThreadimplementsRunnable
privateintnum;
publicFactorialThread(intnum)
(
this.num=num;
)
publicvoidrun()
(
inti=num;
intresult=l;
while(i>0)
(
result=result*i;
i=i-l;
}
System,out.printin(Z/Thefactorialof〃+num+〃isz,+result);
System,out.printin(/?newthreadends");
)
思考:上述兩個(gè)程序?qū)崿F(xiàn)線程有何不同?
第九章圖形用戶界面
1、Swing與AWT包
2、Swing頂層容器、中間層容器、原子容器的概念
Swing提供三個(gè)頂層容器的類
>JFrame實(shí)現(xiàn)單個(gè)主窗口
>JDialog實(shí)現(xiàn)一個(gè)二級(jí)窗口(對(duì)話框)
>JApplet在瀏覽器窗口中實(shí)中實(shí)現(xiàn)一個(gè)applet顯示區(qū)域
3、布局管理器
答案:布局設(shè)計(jì)是用來(lái)安排一個(gè)容器中若干個(gè)組件的相對(duì)位置。容器中組件的
布局是由布局管理器來(lái)負(fù)責(zé)的。每個(gè)容器都有一個(gè)默認(rèn)的布局管理器,用
戶可用特定的方法來(lái)改變?nèi)萜鞯牟季止芾砥鳌?/p>
通常有如下5種布局管理器:
(1)FlowLayout(順序布局)
(2)BorderLayout(邊界布局)
(3)CardLayout(卡片布局)
(4)GridLayout(網(wǎng)格布局)
(5)GirdBagLayout(復(fù)雜網(wǎng)格布局)
4、實(shí)現(xiàn)事件處理的方法
答案:事件源:圖形用戶界面上可能發(fā)生事件的每個(gè)構(gòu)件(組件)稱為事件源
事件對(duì)象:指封裝了有關(guān)事件的若干信息的事件類的對(duì)象。
事件監(jiān)聽(tīng)者:某種監(jiān)聽(tīng)者類的對(duì)像。
5、Applet小應(yīng)用程序的特點(diǎn),如何運(yùn)行?
答案:Applet與Application不同,相比有如下3個(gè)特點(diǎn)
1.Applet的主類必須是類庫(kù)中已定義的Applet類的子類。
2.Applet不是完整獨(dú)立的程序,而是一個(gè)已經(jīng)構(gòu)建好的框架程序中的
一個(gè)模塊。
3.Applet可以直接利用瀏覽器或者Appletviewer所提供的圖形用戶界
面來(lái)顯示運(yùn)行結(jié)果。
Applet的工作原理
L編輯好Applet,存放于.Java的文件中。
2.編譯Applet生成字節(jié)碼文件(.class),通常使用javac命令。
3.將字節(jié)碼文件嵌入到HTML文件,該文件被保存在一個(gè)WWW服務(wù)器上。
4.某個(gè)瀏覽器向服務(wù)器請(qǐng)求下載嵌入Applet的HTML文件時(shí),將該文
件下載到客戶端。
5.使用瀏覽器解釋HTML文件中的各種標(biāo)記,再利用其自身?yè)碛械腏ava
解釋器直接執(zhí)行字節(jié)碼文件,并將結(jié)果輸出顯示在圖形界面上。
6、Applet的生命周期及主要方法?每個(gè)方法何時(shí)執(zhí)行?
答案:Applet類的主要方法如下
Init()方法:用來(lái)完成初始化操作。
Star。方法:該方法是啟動(dòng)瀏覽器將Applet主線程運(yùn)行。
Paint()方法:用來(lái)輸出顯示的,即將結(jié)果輸出顯示在Applet界面上,
可顯示文本、圖形和其他界面元素。
Stop。方法:該方法是在暫停執(zhí)行Applet前執(zhí)行的一種方法。
Destroy。方法:該方法是用來(lái)終止Applet的執(zhí)行,執(zhí)行該方法將會(huì)釋
放Applet占有的一切資源,關(guān)閉連接之類的操作。
7>創(chuàng)建Lx9_l應(yīng)用程序,用swing包創(chuàng)建窗體,并在窗體中創(chuàng)建如下用戶界面,并實(shí)現(xiàn)
簡(jiǎn)單計(jì)原器功能。
packageexample;
importjava.awt.Color;
importjava.awt.Dimension;
importjava.awt.EventQueue;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.ButtonGroup;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JLabel;
importjavax.swing.JOptionPane;
importjavax.swing.JRadioButton;
importjavax.swing.JTextField;
publicclasscalextendsJFrame{
/**
*
*/
privatestaticfinallongserialVersionUID=IL;
privateButtonGroupbuttonGroup_l=newButtonGroup();
privateJTextFieldresult;
privateJTextFieldtextField_l;
privateJTextFieldtextField;
privateJFrameframe;
/**
*Launchtheapplication
*@paramargs
*/
publicstaticvoidmain(Stringargs[]){
EventQueue.invokeLater(newRunnable(){
publicvoidrun(){
try(
calwindow=newcal();
window,frame.setVisible(true);
}catch(Exceptione){
e.printStackTrace();
)
)
});
}
/**
*Createtheapplication
*/
publiccal(){
createContents();
/**
*Initializethecontentsoftheframe
*/
privatevoidcreateContents(){
frame=newJFrame();
frame.getContentPane().setBackground(Color.LIGHT_GRAY);
frame.getContentPane().setLayout(null);
frame.setTitle(〃計(jì)算器〃);
frame.setBounds(100,100,429,375);
frame.setDefaultCloseOperation(JFrame.EXIT_0N_CL0SE);
finalJLabellabel=newJLabel();
label.setBounds(101,43,68,50);
label.setPreferredSize(newDimension(2,50));
label.setText(〃第一個(gè)數(shù):〃);
frame.getContentPane().add(label);
finalJLabellabel_l=newJLabel();
label_l.setText(〃第二個(gè)數(shù):〃);
label1.setBounds(101,99,68,38);
frame.getContentPane().add(label_l);
textField=newJTextFieldO;
textField.setBounds(175,57,104,22);
frame.getContentPane().add(textField);
textField_l=newJTextField();
textField_l.setBounds(175,107,104,22);
frame.getContentPane().add(textField_l);
finalJLabellabel_2=newJLabel();
label_2.setText(〃運(yùn)算〃);
label_2.setBounds(101,166,66,18);
frame.getContentPane().add(label2);
finalJRadioButtonradioButton=newJRadioButtonO;
buttonGroup_l.add(radioButton);
radioButton.setBackground(Color.LIGHTGRAY);
radioButton.setText(〃+〃);
radioButton.setBounds(143,162,38,26);
frame.getContentPane().add(radioButton);
finalJRadioButtonradioButton_l=newJRadioButton();
buttonGroup1.add(radioButton1);
radioButton_l.setBackground(Color.LIGHT_GRAY);
radioButton_1.setText(〃一〃);
radioButton_l.setBounds(187,162,38,26);
frame.getContentPane().add(radioButton1);
finalJRadioButtonradioButton_2=newJRadioButton();
buttonGroup_l.add(radioButton_2);
radioButton_2.setBackground(Color.LIGHTGRAY);
radioButton_2.setText(z,Xz,);
radioButton_2.setBounds(229,162,38,26);
frame.getContentPane().add(radioButton_2);
finalJRadioButtonradioButton_3=newJRadioButton();
buttonGroup_l.add(radioButton_3);
radioButton_3.setBackground(Color.LIGHT_GRAY);
radioButton_3.setText(〃+〃);
radioButton_3.setBounds(273,162,38,26);
frame.getContentPane().add(radioButton_3);
finalJLabellabel3=newJLabel();
label_3.setText(〃運(yùn)算結(jié)果:〃);
label_3.setBounds(101,282,66,18);
frame.getContentPane().add(label_3);
finalJButtonbutton=newJButton();
button.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEventargO){
doublesi,s2,s=0;
try{
sl=Double.parseDouble(textField.getText());
s2=Double.parseDouble(textField_l.getText());
if(radioButton.isSelectedO)
s=sl+s2;
else
if(radioButton_1.isSelectedO)
s=sl-s2;
else
if(radioButton_2.isSelectedO)
s=sl*s2;
else
s=sl/s2;
result.setText(String.valueOf(s));
}catch(Exceptione){
JOptionPane.showMessageDialog(null,〃無(wú)效數(shù)據(jù)!〃);
textField_l.setText(〃〃);result.setText(〃〃);
)
}
});
button.setText(〃計(jì)算〃);
bu
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 備課組長(zhǎng)發(fā)言稿
- 討論會(huì)發(fā)言稿
- 當(dāng)選專家發(fā)言稿
- 公司中秋發(fā)言稿
- 光盤小衛(wèi)士發(fā)言稿
- 五年級(jí)班主任發(fā)言稿
- 領(lǐng)導(dǎo)年終發(fā)言稿
- 展銷會(huì)發(fā)言稿
- 新任職發(fā)言稿
- 小學(xué)二年級(jí)家長(zhǎng)發(fā)言稿
- 教學(xué)課件-古文陋室銘劉禹錫課件
- 主題班會(huì)教學(xué)課件:禁毒教育主題班會(huì)(共38張)
- 道路、橋梁、隧道、地鐵施工標(biāo)準(zhǔn)化手冊(cè)(專業(yè)篇)
- 初中人音版音樂(lè)七年級(jí)下冊(cè).第二單元長(zhǎng)江之歌.(14張)ppt課件
- NancyDrew分析
- 離心式排風(fēng)機(jī)安裝施工方案及技術(shù)措施
- 中西紀(jì)年對(duì)照表
- 粵勞社[2002]246號(hào)關(guān)于職工在機(jī)關(guān)事業(yè)單位與企業(yè)之間流動(dòng)時(shí)社會(huì)保險(xiǎn)關(guān)系處理意見(jiàn)的通知
- 員工晉升審批表
- 通信防雷與接地系統(tǒng)PPT學(xué)習(xí)教案
- 現(xiàn)代漢語(yǔ)中新興類詞綴淺談
評(píng)論
0/150
提交評(píng)論