




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《Java語(yǔ)言程序設(shè)計(jì)》上機(jī)練習(xí)題2
一、java語(yǔ)言基礎(chǔ)和面向?qū)ο?/p>
練習(xí)1(4)
掌握:各種數(shù)據(jù)類型變量的定義和訪問,各種數(shù)據(jù)類型常量的使用,數(shù)據(jù)類型轉(zhuǎn)換。
1.編寫Applet,其功能為:取兩個(gè)小于1000的正隨機(jī)數(shù),若兩個(gè)數(shù)均小于10,先將它們都放大50
倍,否則不改變這兩個(gè)數(shù)。最后,求這兩個(gè)數(shù)的和并將結(jié)果輸出。要求這些功能在主類的方法init()
中實(shí)現(xiàn),并使輸出結(jié)果僅保留小數(shù)點(diǎn)后4位(不需四拾五入)。
@程序
importjava.awt.*;
importjava.applet.*;
publicclassApplet1extendsApplet
(
publicvoidinit()
(
Labeloutl=newLabel("");
Labelout2=newLabel。");
doublex,y;
add(outl);
add(out2);
x=Math.random()*1000;
y=Math.random()*1000;
if(x<10&y<10){x*=50;y*=50;}
outl.setText(H,,+x+"4-,,+y+n約等于");
out2.setText(,H'+(int)((x+y)*10000)/10000.0);
)
)
2.請(qǐng)編寫一個(gè)Applet,其功能為:取一個(gè)小于10000的正隨機(jī)整數(shù),并輸出該數(shù)的平方根。要求這
些功能在主類的方法paint()中實(shí)現(xiàn),并使輸出結(jié)果在四拾五入后保留小數(shù)點(diǎn)后4位。
@程序
importjava.awt.*;
importjava.applet.*;
publicclassApplet!extendsApplet
(
publicvoidpaint(Graphicsg)
intk;
k=(int)(Math.random()*1000);
g.drawString(""+k+"的平方根約等于"+
(int)((Math.sqrt(k)+0.00005)*10000)/10000.0,20,20);
)
)
3.編寫一個(gè)Applet,其功能為:取一個(gè)50-200之間的正隨機(jī)整數(shù),如果該數(shù)為奇數(shù)則求它的平方
根并轉(zhuǎn)換成float型數(shù)后再輸出;如果該數(shù)為偶數(shù)則求它的平方并輸出。
@程序
importjava.awt.*;
importjava.applet.*;
publicclassApplet1extendsApplet
{
publicvoidpaint(Graphicsg)
(
intk;
k=50+(int)(Math.random()*150);
if(k%2!=0)
g.drawString(""+k+"的平方根約等于"+(float)Math.sqrt(k),20,20);
else
g.drawString(""+k+"的平方等于"+k*k,20,20);
)
)
4.請(qǐng)編寫一個(gè)Application,其功能為:取一個(gè)小于800的正隨機(jī)整數(shù),將其以如下形式輸出:
所取隨機(jī)數(shù)為:***
它的百位數(shù)字為:*
它的十位數(shù)字為:*
它的個(gè)位數(shù)字為:*
@程序
//importjava.io.*;
publicclassClassi
(
publicstaticvoidmain(Stringf]args)
(
intx=(int)(Math.random()*800);
System.out.println("所取隨機(jī)數(shù)為:"+x);
System.out.println("它的百位數(shù)字為:"+x/100);
System.out.println("它的十位數(shù)字為:"+x%100/10);
System.out.println("它的個(gè)位數(shù)字為:"+x%10);
//try{System.in.read();}catch(IOExceptione){}
練習(xí)2(5)
掌握:(1)數(shù)組的定義、創(chuàng)建和初始化。
(2)方法的定義和調(diào)用。
(3)方法的參數(shù)是數(shù)組、方法的返回值是數(shù)組的編程。
(4)方法的遞歸調(diào)用。
(5)在應(yīng)用程序中,接受并處理命令行參數(shù)。
1.請(qǐng)編寫一個(gè)Applet,其中定義了兩個(gè)double類型數(shù)組a和b,還定義了一個(gè)方法square()。數(shù)組a
各元素的初值依次為1.2、2.3、3.4、4.5、5.6,數(shù)組b各元素的初值依次為9.8、8.7、7.6、6.5、5.4、
4.3;方法square()的參數(shù)為double類型的數(shù)組,返回值為float類型的數(shù)組,功能是將參數(shù)各元素的
平方做為返回?cái)?shù)組的元素的值。請(qǐng)?jiān)诜椒╬aim()中分別以a和b為實(shí)在參數(shù)調(diào)用方法square(),
并將返回值輸出在屏幕上。要求調(diào)用square(a)的返回?cái)?shù)組輸出在Applet的一行上,數(shù)組的第一個(gè)
元素的輸出坐標(biāo)為(20,20),其后的每個(gè)元素間隔40個(gè)像素。調(diào)用square(b)的返回?cái)?shù)組輸出在
Applet的一列上,即下標(biāo)為i+l(i=0』,2,3,……)的元素的值,在下標(biāo)為i的元素的值的正下方,其返回?cái)?shù)
組的第一個(gè)元素的輸出坐標(biāo)為(20,40),行隔為20像素。
@程序
importjava.awt.*;
importjava.applet.*;
publicclassApplet1extendsApplet
(
doublea[]={1.223,3.4,4.5,5.6};
doublet]b={9.8,8.7,7.6,6.5,54,4.3};
publicvoidpaint(Graphicsg)
(
float[Jx=newfloat[a.lengthj;
float"y=newfloat[b.length];
x=square(a);
y=square(b);
fbr(inti=0;i<x.length;i++)
g.drawString("n+x[i],20+i*40,20);
for(inti=0;i<y.length;i++)
g.drawString("n+y[i],20,40+i*20);
I
float[]square(doublex[])
{
float[]y=newfloat[x.length];
for(inti=0;i<x.length;i++)
y[i]=(float)(x[i]*x[i]);
returny;
2.請(qǐng)編寫一個(gè)Application實(shí)現(xiàn)如下功能:在主類中定義兩個(gè)double類型數(shù)組a和b,再定義一個(gè)方
法sqrt_sum()。數(shù)組a各元素的初值依次為1.2、2.3、3.4、4.5、5.6,數(shù)組b各元素的初值依次為
9.8、8.7、7.6、6.5、5.4、4.3;方法sqrt_sum()的參數(shù)為double類型的數(shù)組,返回值類型為float型,
功能是求參數(shù)各元素的平方根之和。請(qǐng)?jiān)谥鞣椒╩ain()中分別以a和b為實(shí)在參數(shù)調(diào)用方法sqrt.sum
(),并將返回值輸出在屏幕上。
@程序
//importjava.io.*;
publicclassClassi
(
staticdoublea[]={1.2,2.3,3-4,4.5,5.6};
staticdoubleb[]={9.8,8.7,7.6,6.5,5.4,4.3};
publicstaticvoidmain(String[]args)
(
System.out.println("數(shù)組a各元素的平方根之和為:“+sqrt_sum(a));
System.out.println("數(shù)組b各元素的平方根之和為:“+sqrt_sum(b));
//try{charc=(char)System.in.read();}catch(IOExceptione){}
)
staticfloatsqrt_sum(double[]x)
(
doubley=0.0;
fbr(inti=0;i<x.length;i++)
y+=Math.sqrt(x[i]);
return(float)y;
}
)
3.請(qǐng)編寫一個(gè)Application實(shí)現(xiàn)如下功能:在主類中定義方法fl(intn)和方法f2(intn),它們的功
能均為求n!,方法fl()用循環(huán)實(shí)現(xiàn),方法f2()用遞歸實(shí)現(xiàn)。在主方法main()中,以4為實(shí)在參
數(shù)分別調(diào)用方法fl()和方法&(),并輸出調(diào)用結(jié)果。
@程序
//importjava.io.*;
publicclassClassi
(
publicstaticvoidmain(StringlJargs)
(
System.out.println("用循環(huán)實(shí)現(xiàn)求n!的結(jié)果(n=4):"+fl(4));
System.out.println("用遞歸實(shí)現(xiàn)求n!的結(jié)果(n=4):"+f2(4));
//try{charc=(char)System.in.read();}catch(IOExceptione){}
staticlongfl(intn)
longk=l;
fbr(inti=l;i<=n;i++)
k*=i;
returnk;
)
staticlongf2(intn)
(
if(n==l)return1;
elsereturnn*f2(n-l);
)
1
4.請(qǐng)編寫一個(gè)Application實(shí)現(xiàn)如下功能:接受命令行中給出的三個(gè)參數(shù)xl、x2和op,其中xl和
x2為float型數(shù),op是某個(gè)算數(shù)運(yùn)算符(+、一、*、/之一),請(qǐng)以如下形式輸出xl和x2執(zhí)行op
運(yùn)算后的結(jié)果(假設(shè)xl的值為269,x2的值為18,op為運(yùn)算符―):
269-18=251
@程序
publicclassClassi
(
publicstaticvoidmain(String[]args)
(
floatx,y;
charop;
if(args.length>=3)
(
x=Float.valueOf(args[0]),floatValue();
y=Float.valueOf(args[1J).floatValue();
op=args[2].charAt(0);
switch(op)
(
caseSyslem.out.prinUn(x+"+"+y+”="+(x+y));break;
caseSystem.out.println(x+n-n+y+,-n+(x-y));break;
caseSystem.out.println(x+n**,+y+,'="+(x*y));break;
case7':System.out.println(x+,7"+y+n=',+(x/y));break;
default:System.out.println("非法運(yùn)算符!”);
)
)
else{System.out.println("命令行參數(shù)錯(cuò)!”);System.exit(-l);}
}
5.編寫Application,主類中包含以下兩個(gè)自定義方法:voidprintA(int[]array)和int[]
myArray(intn)o方法printA(int[]array)的功能是把參數(shù)數(shù)組各元素在屏幕的一行中輸出。方法
myArray(intn)的功能是生成元素值是50~100之間的隨機(jī)值的int型數(shù)組,數(shù)組元素的個(gè)數(shù)由參數(shù)n
指定。在應(yīng)用程序的main()方法中,用命令行傳入的整數(shù)作為myArray(intn)方法調(diào)用時(shí)的實(shí)
際參數(shù),生成一個(gè)整型數(shù)組,并調(diào)用方法printA()輸出該數(shù)組的所有元素。
@程序
publicclassClassi
(
staticintn;
publicstaticvoidmain(String[]args)
(
if(args.length>0)
(
n=Integer.parseInt(args[O]);
int[]a=newintln];
a=myArray(n);
printA(a);
)
else{System.oul.println("缺命令行參數(shù)!”);System.exit(-l);}
)
staticvoidprintA(int[Jx)
(
fbr(inti=0;i<x.length;i++)
System.out.print(x[i]+"");
System.out.println();
return;
)
staticint[]myArray(intk)
(
intx[]=newintfkl;
fbr(inti=0;i<k;i++)
x[i]=50+(int)(Math.random()*50);
returnx;
)
)
練習(xí)3(3)
掌握:方法的重載。
1.請(qǐng)編寫一個(gè)Applet,其主類名為Apple”,其中包含兩個(gè)同名方法arrayMin(),它們都只有一個(gè)參
數(shù),其中一個(gè)arrayMin()方法的參數(shù)為int型數(shù)組,返回值類型為int型數(shù);另一個(gè)arrayMin()方法
的參數(shù)為double型數(shù)組,返回值類型為double型數(shù);這兩個(gè)方法的功能均為返回參數(shù)數(shù)組元素的最
小值。通過paint()方法調(diào)用上述兩個(gè)同名方法arrayMin(),求數(shù)組a(其元素的值依次為26,82,-3,
65,18,9)和數(shù)組b(其元素的值依次為3.6,57.2,8.5,78.8)的最小元素的值并輸出。
@程序
importjava.awt.*;
importjava.applet.*;
publicclassApplet1extendsApplet
(
inta[]={26,82,-3,65,18,9);
doubleb[]={3.6,57.2,8.5,78.8};
publicvoidpaint(Graphicsg)
(
g.drawString("數(shù)組a的最小元素的值為:arrayMin(a),20,20);
g.drawString(”數(shù)組b的最小元素的值為:“+arrayMin(b),20,40);
)
intarrayMin(intx[])
(
inty=x[0];
for(inti=l;i<x.length;i++)if(y>x[i])y=x[i];
returny;
)
doublearrayMin(doublex[])
(
doubley=x[0];
fbr(inti=1;i<x.length;i++)if(y>x[i])y=x[i];
returny;
)
)
2.請(qǐng)編寫一個(gè)Application,其主類名為Classi,其中包含三個(gè)同名方法mySqrt。,它們都只有一個(gè)
參數(shù),參數(shù)的類型分別為int型、float型和double型,它們的功能均為返回參數(shù)的平方根,返回值
的類型與參數(shù)的類型相同。在主方法main()中調(diào)用上面的三個(gè)方法,這三個(gè)方法的參數(shù)均來(lái)自命令
行參數(shù),最后將計(jì)算結(jié)果輸出在屏幕上。
@程序
publicclassClassi
(
staticintn;
publicstaticvoidmain(String[]args)
(
if(args.length>=3)
(
intn;
floatf;
doubled;
n=Integer.parseInt(args[O]);
f=Float.valueOf(args[1]).floatValue();
d=Double.valueOf(args[2]).doubleValue();
System.out.println(n+”的平方根為:H+mySqrt(n));
System.out.println(f+”的平方根為:"+mySqrt(f));
System.out.println(d+”的平方根為:n+mySqrt(d));
else{System.out.println("缺命令行參數(shù)!");System.exit(-l);}
staticintmySqrt(intx)
{return(int)Math.sqrt(x);}
staticfloatmySqrt(floatx)
{return(float)Math.sqrt(x);}
staticdoublemySqrt(doublex)
{returnMath.sqrt(x);}
)
3.請(qǐng)編寫一個(gè)Applet,其主類名為Applet1,其中包含三個(gè)同名方法addM(intx,bytey)>addM(float
x,doubley)、addM(doublex,doubley),它們的功能均為求兩個(gè)參數(shù)之和,返回值類型與第一個(gè)
參數(shù)的類型相同。在主類Applet1中,通過paint()方法調(diào)用上面的三個(gè)方法,實(shí)現(xiàn)12345+67、
89.6f+6.9e-8、0.987654321+32.1,然后將計(jì)算結(jié)果輸出,輸出位置分別為坐標(biāo)(20,40)、(20,60)、
(20,80)o
@程序
importjava.awt.*;
importjava.applet.*;
publicclassApplet1extendsApplet
(
publicvoidpaint(Graphicsg)
(
g.drawString(n12345+67="+addM(12345,67),20,40);
g.drawString("89.6+6.9e-8="+addM(89.6f,6.9e-8),20,60);
g.drawString(n0.987654321+32.1="+addM(0.987654321,32.1),20,80);
)
intaddM(intx,bytey)
{returnx+y;}
floataddM(floatx,doubley)
{return(float)(x+y);}
doubleaddM(doublex,doubley)
{returnx+y;}
)
練習(xí)4(3)
掌握:(D類的繼承。
(2)在子類中如何操作父類中的私有屬性。
(3)變量的作用域。
1.請(qǐng)編寫Applet,它由三個(gè)類定義組成,類名分別為A、B和Appletl:類A中定義了一個(gè)類型為
float的屬性f和一個(gè)類型為byte的私有屬性k;類A還定義了一個(gè)帶有一個(gè)參數(shù)的構(gòu)造函數(shù)(用于
初始化f),和兩個(gè)公共方法setk()和getk(),其中selk()的功能為給私有屬性k賦值,getk()的功能為
返回私有屬性k的值。類B是類A的子類,其中僅定義了一個(gè)類型為boolean的屬性b和一個(gè)帶兩
個(gè)參數(shù)的構(gòu)造函數(shù)(用來(lái)為父類中的變量f和本類的變量b做初始化)。主類Appletl中定義了一個(gè)
初值為123的int型變量n和一個(gè)B類的對(duì)象x,請(qǐng)通過創(chuàng)建x為上述f和b賦值(f的值為68.963,b
的值為true);在paint()方法中,給A類的私有屬性k賦值66,然后顯示f,k,b,n的值。
@程序
importjava.awt.*;
importjava.applet.*;
publicclassApplet!extendsApplet
(
intn=123;
Bx=newB(68.963f,true);
publicvoidpaint(Graphicsg)
(
x.setk((byte)66);
g.drawString("f="+x.f+"k="+x.getk()+"b="+x上+"n=u+n,10,20);
)
)
classA
(
floatf;
privatebytek;
A(floatfl){f=fl;}
publicbytegetk(){returnk;}
publicvoidsetk(bytem){k=m;)
)
classBextendsA
(
booleanb;
B(floatff,booleanbb){super(ff);b=bb;}
)
2.請(qǐng)按如下要求定義兩個(gè)類A和B,類A中定義一個(gè)double類型變量d(將其賦值為8.8)和一個(gè)
方法int_d(doubledd),該方法的功能是返回參數(shù)dd的整數(shù)部分。類B是類A的子類,其中定義
一個(gè)float類型變量f(將其賦值為18.3)和一個(gè)方法int_f(floatff),該方法的功能是返回參數(shù)ff
的整數(shù)部分。編寫一個(gè)Application,創(chuàng)建類B的對(duì)象b,在主方法main()中先顯示d和f的值,然
后分別以d和f為實(shí)在參數(shù)調(diào)用int_d()方法和int_f()方法,并將它們的返回值顯示在屏幕上。
@程序
publicclassClassi
(
publicstaticvoidmain(Stringljargs)
(
Bb=newB();
System.out.println("d="+b.d+"f="+b.f);
System.out.println("d的整數(shù)部分="+_d(b.d)+”f的整數(shù)部分="+_f(b.f));
)
)
classA
(
doubled=8.8;
intint_d(doubledd){return(int)dd;}
classBextendsA
floatf=18.3f;
intint_f(floatff){return(int)ff;}
)
3.請(qǐng)編寫一個(gè)Application,在其主類中定義一個(gè)int類型變量i,并令其初值為123;主類中還
定義了ml()和m2()等兩個(gè)方法。在主方法main()和方法ml()中也各定義一個(gè)int類型變量i,
它們的初值分別為456和789;方法ml()的功能是輸出它的局部變量i的值;方法m2()的功能是
先輸出類變量i的值,然后使類變量i增加值6后再次輸出其值;主方法main()的功能是先輸
出它的局部變量i的值,然后先后調(diào)用ml()和m2()實(shí)現(xiàn)它們的功能。
@程序
publicclassClassi
{
staticinti=123;
publicstaticvoidmain(StringlJargs)
(
inti=456;
System.out.println("main()中的i="+i);
ml();
m2();
}
staticvoidml()
(
inti=789;
System.out.println("ml()中的i="+i);
)
staticvoidm2()
(
System.out.println("類變量i="+i);
i+=6;
System.out.println("加6后的類變量i="+i);
)
)
練習(xí)5(5)
掌握:(1)方法的參數(shù)為類對(duì)象、方法的返回值為類對(duì)象。
(2)方法覆蓋:在子類中調(diào)用被子類覆蓋了的父類的同名方法。
(3)屬性隱藏:在子類中訪問被子類隱藏了的父類的同名屬性。
(4)構(gòu)造函數(shù)的重載。
1.請(qǐng)編寫一個(gè)Applet,它由兩個(gè)類定義組成:類A中定義了short型變量i和char型變量ch,及一
個(gè)帶兩個(gè)參數(shù)的構(gòu)造函數(shù)(為變量i和ch做初始化)。主類Appletl中創(chuàng)建了兩個(gè)A類的對(duì)象xl(i
的初始值為12,ch的初始值為,6,)和x2(i的初始值為62,ch的初始值為65),還定義了一個(gè)方法
b,b的參數(shù)和返回值均為A類的對(duì)象,功能為將參數(shù)對(duì)象的屬性i加3,屬性ch也加3,使返回結(jié)
果為另一個(gè)A類的對(duì)象(即不破壞實(shí)在參數(shù)的值)。請(qǐng)?jiān)趐aint()方法中先輸出xl、x2的屬性值,然
后再分別以xl、x2為實(shí)在參數(shù)調(diào)用方法b(),并輸出調(diào)用結(jié)果,最后再次輸出xl、x2的屬性值。
@程序
importjava.awt.*;
importjava.applet.*;
publicclassApplet1extendsApplet
(
Axl,x2;
publicvoidinit()
{x1=newA((short)12,'6');x2=newA((short)62,(char)65);}
publicvoidpaint(Graphicsg)
(
Aal=newA((short)0,**);
Aa2=newA((short)0,*');
g.drawString("對(duì)象xl的屬性值:i="+xl.i+"ch="+x1.ch,20,20);
g.drawString("對(duì)象xl的屬性值:i="+x2.i+"ch=H+x2.ch,20,40);
al=b(xl);a2=b(x2);
g.drawString("以xl為實(shí)參調(diào)用方法b()生成的新的A類對(duì)象的屬性值:i="
+al.i+”ch=u+al.ch,20,60);
g.drawString("以x2為實(shí)參調(diào)用方法b()生成的新的A類對(duì)象的屬性值:i="
+a2.i+"ch="+a2.ch,20,80);
g.drawString("調(diào)用后,對(duì)象xl的屬性值:i=H+xl.i+"ch="+xl.ch,20,100);
g.drawString("調(diào)用后,對(duì)象xl的屬性值:i="+x2.i+”ch="+x2.ch,20,120);
)
Ab(Ay)
(
Aa=newA((short)0,*');
a.i=(short)(y.i+3);
a.ch=(char)(y.ch+3);
returna;
)
)
classA
(
shorti;
charch;
A(shortil,charcl){i=il;ch=c1;}
)
2.請(qǐng)按如下要求定義兩個(gè)類A和B,類A中定義一個(gè)char類型屬性x(將其賦值為65)和一個(gè)在小
程序窗口中輸出x值的方法myPrint()。類B是類A的子類,其中定義一個(gè)int類型屬性y(將其賦
值為16)和String類型的屬性s(將其賦值為“javaprogram!”);類B中也定義了一個(gè)名為myPrint
的方法,其功能為在小程序窗口中輸出y和s值;類B中還有一個(gè)方法printAll(),該方法中分別調(diào)
用父類和子類的myPrint。方法做輸出。編寫一個(gè)Applet,在主類Apple”中創(chuàng)建類B的對(duì)象b,調(diào)
用printAH()方法輸出對(duì)象b的屬性值。
@程序
importjava.awt.*;
importjava.applet.*;
publicclassApplet!extendsApplet
Bb=newB();
publicvoidpaint(Graphicsg)
(
b.printAll(g);
)
)
classA
(
charx=65;
voidmyPrint(Graphicsg)
{g.drawString(ux=,'+x,20,20);}
)
classBextendsA
(
inty=16;
Strings=,,javaprogram!";
voidmyPrint(Graphicsg)
{g.drawString("y="+y+"s=*'+s,20,40);}
voidprintAll(Graphicsg)
{super.myPrint(g);myPrint(g);}
)
3.請(qǐng)按如下要求定義兩個(gè)類A和B,類A中定義一個(gè)方法area(floatr),其返回值類型為float型,
該方法的功能是返回半徑為r的圓的面積(圓的面積公式為:兀巴其中r是圓的半徑)。類B是類A
的子類,其中也定義了一個(gè)名為area的方法area(floatr),該方法的功能是返回半徑為1?的球的表
面積(球的表面積的計(jì)算公式為:4兀己其中r為球的半徑),返回值類型也為float型;在類B中
還定義了另一個(gè)方法myPrint(floatr),功能是分別調(diào)用父類和子類的方法area()計(jì)算半徑相同的圓
的面積和球的表面積并輸出調(diào)用結(jié)果。編寫一個(gè)Application,創(chuàng)建類B的對(duì)象b,在主方法main()
中調(diào)用myPrint(floatr),輸出半徑為1.2的圓的面積和半徑為1.2的球的表面積。
@程序
publicclassClassi
(
publicstaticvoidmain(String[]args)
{Bb=newB();b.myPrint(1.2f);}
)
classA
(
floatrear(floatr)
{return(float)Math.PI*r*r;}
)
classBextendsA
(
floatrear(floatr)
{return4*(float)Math.PI*r*r;}
voidmyPrint(floatr)
(
System.out.println("半徑為“+r+”的圓的面積="+super.rear(r)
+"同半徑的球的表面積二"+rear(r));
)
4.請(qǐng)編寫Applet,它由三個(gè)類定義組成:類A中只定義了一個(gè)類型為String的對(duì)象x和帶有一個(gè)參
數(shù)的構(gòu)造函數(shù)(用來(lái)初始化x);類B是類A的子類,其中定義了一個(gè)int類型的變量x和一個(gè)帶兩
個(gè)參數(shù)的構(gòu)造函數(shù)(用來(lái)為父類中的對(duì)象x和類B中的變量x做初始化),還定義了一個(gè)方法
myPrint(),功能為輸出父類A中的x和其子類B中的x的值;主類Applet1中定義了B類的對(duì)象b,
請(qǐng)通過創(chuàng)建b為上述兩個(gè)x賦值(類A中的x的值為“這是父類的x.",類B中的x的值為68),通
過paint。方法在坐標(biāo)(20,30)處顯示兩個(gè)x的值。
@程序
importjava.awt.*;
importjava.applet.*;
publicclassApplet1extendsApplet
(
Bb=newB("這是父類的x.",68);
publicvoidpaint(Graphicsg)
{b.myPrint(g);)
)
classA
(
Stringx;
A(Stringxl){x=xl;}
)
classBextendsA
(
intx;
B(Stringxl,intx2){super(x1);x=x2;}
voidmyPrint(Graphicsg)
{g.drawString("父類A中x的值="+super.x+”子類B中x的值="+x,20,30);}
)
5.請(qǐng)編寫Applet,它由三個(gè)類定義組成,類名分別為A、B和Appletl:類A中定義了類型為ini的
變量i、類型為float的變量f和類型為char的變量ch;類A還定義了三個(gè)構(gòu)造函數(shù),其中,第一個(gè)構(gòu)
造函數(shù)帶有一個(gè)int類型的參數(shù)(用于初始化i),第二個(gè)構(gòu)造函數(shù)帶有兩個(gè)參數(shù)(參數(shù)類型分別為int
和float,用于初始化i和f),第三個(gè)構(gòu)造函數(shù)帶有三個(gè)參數(shù)(參數(shù)類型分別為int、float和char,用于
初始化i、f和ch)。類B是類A的子類,其中僅定義了一個(gè)類型為boolean的變量b和一個(gè)帶四個(gè)
參數(shù)的構(gòu)造函數(shù)(用來(lái)為父類中的變量i、f、ch和本類的變量b做初始化)。主類Appletl中定義了
一個(gè)初值為32.6的double型變量d和一個(gè)B類的對(duì)象b,請(qǐng)通過創(chuàng)建b為上述i、f、ch和b賦值(i
的值為50,f的值為7.2,ch的值為,h\b的值為true),用paint。方法在(10,30)位置處顯示i,f,ch,b,d
的值。
@程序
importjava.awt.*;
importjava.applet.*;
publicclassApplet1extendsApplet
(
doubled=32.6;
Bb=newB(50,7.2f/h',true);
publicvoidpaint(Graphicsg)
(
g.drawString(ni=n+b,i+Mf="+b.f+”ch="+b.ch+“b="+b.b+”d="+d,10,30);
)
)
classA
(
inti;
floatf;
charch;
A(intx){i=x;}
A(intx,floaty){this(x);f=y;}
A(intx,floaty,charz){this(x,y);ch=z;}
)
classBextendsA
(
booleanb;
B(intx,floaty,charz,booleanw){super(x,y,z);b=w;}
)
練習(xí)6(5)
掌握:接口、抽象類、最終類的編程;字符串的使用。
1.定義接口A,接口內(nèi)有兩個(gè)方法:methodi(intx)和method2(intx,inty),它們的返回值類型均為
into請(qǐng)編寫一個(gè)Applet,并使其實(shí)現(xiàn)接口A:令方法methodi(intx)的功能是求5的x次方、方法
method2(intx,inty)的功能是求兩參數(shù)的最大值。在paint()方法中調(diào)用這兩個(gè)方法,顯示method1(2)
和method2(2,8)的結(jié)果。
@程序
importjava.awt.*;
importjava.applet.*;
publicclassApplet1extendsAppletimplementsA
(
publicvoidpaint(Graphicsg)
(
g.drawString("調(diào)用method1(2)的結(jié)果:"method1(2),20,20);
g.drawString("調(diào)用method2(2,8)的結(jié)果:n+method2(2,8),20,40);
publicintmethodl(intx)
(
intresult=1;
fbr(inti=l;i<=x;i++)
result*=5;
returnresult;
)
publicintmethod2(intx,inty)
(
returnx>y?x:y;
)
)
interfaceA
(
publicabstractintmethodl(intx);
publicabstractintmethod2(intx,inty);
)
2.定義名為VolumeArea的抽象類,在其中定義圓周率九的值為3.14159,并定義兩個(gè)抽象方法
volume(doubler)和area(doubler),它們的返回值類型均為float。再定義以類VolumeArea為父類
的子類VolumeAndArea,在該子類中實(shí)現(xiàn)父類中的抽象方法:方法volume(doubler)的功能是求半
徑為r的球的體積(公式為:4兀/+3);方法area(doubler)的功能是求半徑為r的圓的面積(公式為:
KF2)O請(qǐng)編寫一個(gè)Applicalion,在其主類中定義一個(gè)VolumeAndArea類的對(duì)象x,通過對(duì)象x求半
徑為r(r的值由命令行給定)的球的體積及該球最大切面的圓的面積,并輸出計(jì)算結(jié)果。
@程序
publicclassClassi
(
staticVolumeAndAreax=newVolumeAndArea();
publicstaticvoidmain(Stringl]args)
(
floatr=Float.valueOf(argslOJ).floatValue();
System.out.println("半徑為"+r+”的球的體積="+x.volume(r));
System.out.prinlln("半徑為"+r+”的圓的面積二"+x.area(r));
)
)
abstractclassVolumeArea
(
staticfinalfloatmyPI=3.14159f;
publicabstractfloatvolume(doubler);
publicabstractfloatarea(doubler);
)
classVolumeAndAreaextendsVolumeArea
(
publicfloatvolume(doubler)
return(float)(4*myPI*r*r*r/3);
publicfloatarea(doubler)
(
return(float)(myPI*r*r);
)
)
3.定義類A,在其中定義一個(gè)final變量myPI,其類型為float,值為3.1416;類A中還定義一個(gè)final
方法ml(floatr),該方法返回值類型為float,功能是求半徑為r的圓的周長(zhǎng)(公式為:2兀r)。再定
義類A的子類B,B為final類,其中定義一個(gè)返回值類型為void的方法m2(floatr),功能是先調(diào)
用父類的方法ml()求半徑為r的圓的周長(zhǎng)并輸出計(jì)算結(jié)果,然后輸出同一個(gè)圓的面積(公式為:nF)。
請(qǐng)編寫一個(gè)Application,利用類B計(jì)算并輸出半徑為5的圓的周長(zhǎng)和面積。
@程序
publicclassClass1
{
staticBx=newB();
publicstaticvoidmain(String[]args)
{
x.m2(5);
)
)
classA
(
finalfloatmyPI=3.1416f;
publicfinalfloatml(floatr)
{return2*myPI*r;}
)
finalclassBextendsA
(
publicvoidm2(floatr)
(
System.out.println("半徑為"+r+"的圓的周長(zhǎng)="+011(r));
System.out.println("半徑為"+r+"的圓的面積="+myPI*r*r);
)
)
4.編寫應(yīng)用程序,功能為:從命令行傳入一個(gè)包含十個(gè)字符的字符串,把該字符串與程序中給定的
字符串“bacdbcabca”依次比較,統(tǒng)計(jì)兩個(gè)串中對(duì)應(yīng)字符相等的數(shù)目。然后輸出命令行輸入的字符串,
并把兩個(gè)串中對(duì)應(yīng)字符不相等的字符替換為'@后生成的新串輸出,最后輸出兩個(gè)串中相等字符的數(shù)
目。
@程序
publicclassClassi
(
publicstaticvoidmain(Slringargs[])throwslOExceplion
(
if(args[O].length()<10)System.out.print("Enterastring:include10chars");
else
{Stringstr=newString(nbacdbcabca");
intn=0;
System.out.print("TheStandardanswer:");
for(intx=O;x<str.length();x++)
System.out.print("M+str.charAt(x));
System.out.printlnO;
System.out.print(nTheStudentanswer:");
for(intx=O;x<str.length();x++)
(
if(args[0].charAt(x)==str,charAt(x))
{n++;System.out.print(Mn+args[OJ.charAt(x));}
elseSystem.out.print(n"+"@");
)
System.out.println();
System.out.println(HThecorrectanswers:"+n);
)
)
)
5.請(qǐng)編寫一個(gè)Application實(shí)現(xiàn)如下功能:接受命令行中給出的一個(gè)字母串,先將該串原樣輸出,然
后判斷該串的第一個(gè)字母是否為大寫,若是大寫則統(tǒng)計(jì)該串中大寫字母的個(gè)數(shù),并將所有大寫字母
輸出;否則輸出信息串”第一個(gè)字母不是大寫字母!〃。
@程序
publicclassClassi
(
publicstaticvoidmain(Stringargs[])
(
intcount=0;
if(args.length!=O)
(
System.out.println(args[0]);
if((int)args[0].charAt(0)>=65&&(int)args[0].charAt(0)<=90)
(
for(inti=O;i<args[OJ.length();i++)
if((int)args[0].charAt(i)>=65&&(int)argsf0].charAt(i)<=90)
{System.out.print(args[0].charAt(i));Count++;}
System.out.println();
System.out.println("共有"+count+”個(gè)大寫字母?!?;
elseSystem.out.println("第一個(gè)字母不是大寫字母!)
elseSystem.out.println("請(qǐng)給出命令行參數(shù)!”);
練習(xí)7(5)
掌握:命令行傳參數(shù)。
1.請(qǐng)編寫一個(gè)實(shí)現(xiàn)如下功能的Application:比較命令行中給出的兩個(gè)整數(shù)是否相等,并根據(jù)比較結(jié)
果顯示“相等"或"不相等"。
publicclassClassi
(
publicstaticvoidmain(String[]args)
(
intx,y;
Stringstr=u
if(args.length<2)
(
System.out.println("請(qǐng)?jiān)诿钚休斎雰蓚€(gè)參數(shù))
System.exit(-l);
)
x=lnteger.parselnt(args[01);
y=lnteger.parselnt(argsll]);
if(x==y)str="命令行輸入的兩個(gè)參數(shù)相等";
elsest尸"命令行輸入的兩個(gè)參數(shù)不相等”;
System.out.println(str);
)
)
2.編寫一個(gè)Application程序,比較命令行中給出的兩個(gè)字符串是否相等,并輸出比較的結(jié)果。
importjava.io.*;
publicclassClassi
(
publicstaticvoidmain(StringlJargs)
(
if(args.length<2)
(
System.out.println("Usage:string!string2");
System.exit(-l);
)
if(args[O].equals(args[1]))
System.out.println(args[0]+M和n+args[l]+"相等”);
else
System.out.println(args[0]+n和"+args[l]+n不等");
3.從命令行傳入3個(gè)整數(shù),求3個(gè)整數(shù)的和、積、最大值、最小值。
publicclassClassi
(
publicstaticvoidmain(String[]args)
(
intn=args.length;
if(n<3)
System.out.println("請(qǐng)輸入三個(gè)整數(shù)!”);
else
(
inta,b,c;
a=Integer.parseInt(args[OJ);
b=lnteger.parselnt(args[1]);
c=lnteger.parselnt(args[2]);
System.out.println("和:”+(a+b+c));
System.out.printin("積:"+(a*b*c));
System.out.println("最大值:"+Math.max(c,Math.max(a,b)));
System.out.printin("最小值:u+Math.min(c,Math.min(a,b)));
)
)
)
4.請(qǐng)編寫一個(gè)Application實(shí)現(xiàn)如下功能:通過命令行中給出的float型參數(shù)x,和int型參數(shù)y(如
果參數(shù)少于兩個(gè),給出提示后退出系統(tǒng)),調(diào)用Math類中的方法求x的y次方并輸出。
importjava.io.*;
publicclassClassi
(
publicstaticvoidmain(Stringf]args)
(
intx,y;
Stringstr=u
if(args.length<2)
(
System.out.printlnC'Usageinumberlnumber2n);
System.exit(-l);
)
x=Float.valueOf(argslOJ).floatValue();
y=lnteger.parselnt(args[1]);
str=
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 鄭州工業(yè)安全職業(yè)學(xué)院《生理學(xué)實(shí)驗(yàn)室》2023-2024學(xué)年第二學(xué)期期末試卷
- 蘭州博文科技學(xué)院《傳承與創(chuàng)新設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津財(cái)經(jīng)大學(xué)《產(chǎn)品包裝設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 長(zhǎng)沙幼兒師范高等??茖W(xué)?!秷@林生態(tài)學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 金肯職業(yè)技術(shù)學(xué)院《工程計(jì)量與計(jì)價(jià)(安裝)》2023-2024學(xué)年第二學(xué)期期末試卷
- 徐州生物工程職業(yè)技術(shù)學(xué)院《西方文化導(dǎo)論及經(jīng)典文本》2023-2024學(xué)年第一學(xué)期期末試卷
- 婁底職業(yè)技術(shù)學(xué)院《生物統(tǒng)計(jì)附實(shí)驗(yàn)設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 麗江師范高等??茖W(xué)校《博弈論及其應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 施工升降機(jī)其設(shè)備租賃合同
- 單位電腦維護(hù)合同
- 第六單元《組合圖形的面積》(教學(xué)設(shè)計(jì))-人教版五年級(jí)數(shù)學(xué)上冊(cè)
- 地理-北京市朝陽(yáng)區(qū)2024-2025學(xué)年高三第一學(xué)期期末質(zhì)量檢測(cè)考試試題和答案
- 【MOOC】中國(guó)紅色文化精神-西安交通大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 2024年度高中報(bào)名輔導(dǎo)中介服務(wù)合同
- 【MOOC】信號(hào)與系統(tǒng)-哈爾濱工業(yè)大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 不銹鋼地溝施工方案
- 2024年10月自考13683管理學(xué)原理中級(jí)試題及答案含評(píng)分參考
- 十四五《中成藥學(xué)》第一章-緒論
- 華南理工大學(xué)《軟件分析設(shè)計(jì)與建?!?022-2023學(xué)年期末試卷
- 《外科護(hù)理學(xué)(第七版)》考試復(fù)習(xí)題庫(kù)(濃縮500題)
- 任務(wù)2 比亞迪·秦混合動(dòng)力汽車動(dòng)力系統(tǒng)構(gòu)造與檢修
評(píng)論
0/150
提交評(píng)論