《Java語言程序設計》上機練習題2及答案_第1頁
《Java語言程序設計》上機練習題2及答案_第2頁
《Java語言程序設計》上機練習題2及答案_第3頁
《Java語言程序設計》上機練習題2及答案_第4頁
《Java語言程序設計》上機練習題2及答案_第5頁
已閱讀5頁,還剩62頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

《Java語言程序設計》上機練習題2

一、java語言基礎和面向對象

練習1(4)

掌握:各種數(shù)據類型變量的定義和訪問,各種數(shù)據類型常量的使用,數(shù)據類型轉換。

1.編寫Applet,其功能為:取兩個小于1000的正隨機數(shù),若兩個數(shù)均小于10,先將它們都放大50

倍,否則不改變這兩個數(shù)。最后,求這兩個數(shù)的和并將結果輸出。要求這些功能在主類的方法init()

中實現(xiàn),并使輸出結果僅保留小數(shù)點后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.請編寫一個Applet,其功能為:取一個小于10000的正隨機整數(shù),并輸出該數(shù)的平方根。要求這

些功能在主類的方法paint()中實現(xiàn),并使輸出結果在四拾五入后保留小數(shù)點后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.編寫一個Applet,其功能為:取一個50-200之間的正隨機整數(shù),如果該數(shù)為奇數(shù)則求它的平方

根并轉換成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.請編寫一個Application,其功能為:取一個小于800的正隨機整數(shù),將其以如下形式輸出:

所取隨機數(shù)為:***

它的百位數(shù)字為:*

它的十位數(shù)字為:*

它的個位數(shù)字為:*

@程序

//importjava.io.*;

publicclassClassi

(

publicstaticvoidmain(Stringf]args)

(

intx=(int)(Math.random()*800);

System.out.println("所取隨機數(shù)為:"+x);

System.out.println("它的百位數(shù)字為:"+x/100);

System.out.println("它的十位數(shù)字為:"+x%100/10);

System.out.println("它的個位數(shù)字為:"+x%10);

//try{System.in.read();}catch(IOExceptione){}

練習2(5)

掌握:(1)數(shù)組的定義、創(chuàng)建和初始化。

(2)方法的定義和調用。

(3)方法的參數(shù)是數(shù)組、方法的返回值是數(shù)組的編程。

(4)方法的遞歸調用。

(5)在應用程序中,接受并處理命令行參數(shù)。

1.請編寫一個Applet,其中定義了兩個double類型數(shù)組a和b,還定義了一個方法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ù)各元素的

平方做為返回數(shù)組的元素的值。請在方法paim()中分別以a和b為實在參數(shù)調用方法square(),

并將返回值輸出在屏幕上。要求調用square(a)的返回數(shù)組輸出在Applet的一行上,數(shù)組的第一個

元素的輸出坐標為(20,20),其后的每個元素間隔40個像素。調用square(b)的返回數(shù)組輸出在

Applet的一列上,即下標為i+l(i=0』,2,3,……)的元素的值,在下標為i的元素的值的正下方,其返回數(shù)

組的第一個元素的輸出坐標為(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.請編寫一個Application實現(xiàn)如下功能:在主類中定義兩個double類型數(shù)組a和b,再定義一個方

法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ù)各元素的平方根之和。請在主方法main()中分別以a和b為實在參數(shù)調用方法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.請編寫一個Application實現(xiàn)如下功能:在主類中定義方法fl(intn)和方法f2(intn),它們的功

能均為求n!,方法fl()用循環(huán)實現(xiàn),方法f2()用遞歸實現(xiàn)。在主方法main()中,以4為實在參

數(shù)分別調用方法fl()和方法&(),并輸出調用結果。

@程序

//importjava.io.*;

publicclassClassi

(

publicstaticvoidmain(StringlJargs)

(

System.out.println("用循環(huán)實現(xiàn)求n!的結果(n=4):"+fl(4));

System.out.println("用遞歸實現(xiàn)求n!的結果(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.請編寫一個Application實現(xiàn)如下功能:接受命令行中給出的三個參數(shù)xl、x2和op,其中xl和

x2為float型數(shù),op是某個算數(shù)運算符(+、一、*、/之一),請以如下形式輸出xl和x2執(zhí)行op

運算后的結果(假設xl的值為269,x2的值為18,op為運算符―):

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("非法運算符!”);

)

)

else{System.out.println("命令行參數(shù)錯!”);System.exit(-l);}

}

5.編寫Application,主類中包含以下兩個自定義方法:voidprintA(int[]array)和int[]

myArray(intn)o方法printA(int[]array)的功能是把參數(shù)數(shù)組各元素在屏幕的一行中輸出。方法

myArray(intn)的功能是生成元素值是50~100之間的隨機值的int型數(shù)組,數(shù)組元素的個數(shù)由參數(shù)n

指定。在應用程序的main()方法中,用命令行傳入的整數(shù)作為myArray(intn)方法調用時的實

際參數(shù),生成一個整型數(shù)組,并調用方法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;

)

)

練習3(3)

掌握:方法的重載。

1.請編寫一個Applet,其主類名為Apple”,其中包含兩個同名方法arrayMin(),它們都只有一個參

數(shù),其中一個arrayMin()方法的參數(shù)為int型數(shù)組,返回值類型為int型數(shù);另一個arrayMin()方法

的參數(shù)為double型數(shù)組,返回值類型為double型數(shù);這兩個方法的功能均為返回參數(shù)數(shù)組元素的最

小值。通過paint()方法調用上述兩個同名方法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.請編寫一個Application,其主類名為Classi,其中包含三個同名方法mySqrt。,它們都只有一個

參數(shù),參數(shù)的類型分別為int型、float型和double型,它們的功能均為返回參數(shù)的平方根,返回值

的類型與參數(shù)的類型相同。在主方法main()中調用上面的三個方法,這三個方法的參數(shù)均來自命令

行參數(shù),最后將計算結果輸出在屏幕上。

@程序

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.請編寫一個Applet,其主類名為Applet1,其中包含三個同名方法addM(intx,bytey)>addM(float

x,doubley)、addM(doublex,doubley),它們的功能均為求兩個參數(shù)之和,返回值類型與第一個

參數(shù)的類型相同。在主類Applet1中,通過paint()方法調用上面的三個方法,實現(xiàn)12345+67、

89.6f+6.9e-8、0.987654321+32.1,然后將計算結果輸出,輸出位置分別為坐標(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;}

)

練習4(3)

掌握:(D類的繼承。

(2)在子類中如何操作父類中的私有屬性。

(3)變量的作用域。

1.請編寫Applet,它由三個類定義組成,類名分別為A、B和Appletl:類A中定義了一個類型為

float的屬性f和一個類型為byte的私有屬性k;類A還定義了一個帶有一個參數(shù)的構造函數(shù)(用于

初始化f),和兩個公共方法setk()和getk(),其中selk()的功能為給私有屬性k賦值,getk()的功能為

返回私有屬性k的值。類B是類A的子類,其中僅定義了一個類型為boolean的屬性b和一個帶兩

個參數(shù)的構造函數(shù)(用來為父類中的變量f和本類的變量b做初始化)。主類Appletl中定義了一個

初值為123的int型變量n和一個B類的對象x,請通過創(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.請按如下要求定義兩個類A和B,類A中定義一個double類型變量d(將其賦值為8.8)和一個

方法int_d(doubledd),該方法的功能是返回參數(shù)dd的整數(shù)部分。類B是類A的子類,其中定義

一個float類型變量f(將其賦值為18.3)和一個方法int_f(floatff),該方法的功能是返回參數(shù)ff

的整數(shù)部分。編寫一個Application,創(chuàng)建類B的對象b,在主方法main()中先顯示d和f的值,然

后分別以d和f為實在參數(shù)調用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.請編寫一個Application,在其主類中定義一個int類型變量i,并令其初值為123;主類中還

定義了ml()和m2()等兩個方法。在主方法main()和方法ml()中也各定義一個int類型變量i,

它們的初值分別為456和789;方法ml()的功能是輸出它的局部變量i的值;方法m2()的功能是

先輸出類變量i的值,然后使類變量i增加值6后再次輸出其值;主方法main()的功能是先輸

出它的局部變量i的值,然后先后調用ml()和m2()實現(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);

)

)

練習5(5)

掌握:(1)方法的參數(shù)為類對象、方法的返回值為類對象。

(2)方法覆蓋:在子類中調用被子類覆蓋了的父類的同名方法。

(3)屬性隱藏:在子類中訪問被子類隱藏了的父類的同名屬性。

(4)構造函數(shù)的重載。

1.請編寫一個Applet,它由兩個類定義組成:類A中定義了short型變量i和char型變量ch,及一

個帶兩個參數(shù)的構造函數(shù)(為變量i和ch做初始化)。主類Appletl中創(chuàng)建了兩個A類的對象xl(i

的初始值為12,ch的初始值為,6,)和x2(i的初始值為62,ch的初始值為65),還定義了一個方法

b,b的參數(shù)和返回值均為A類的對象,功能為將參數(shù)對象的屬性i加3,屬性ch也加3,使返回結

果為另一個A類的對象(即不破壞實在參數(shù)的值)。請在paint()方法中先輸出xl、x2的屬性值,然

后再分別以xl、x2為實在參數(shù)調用方法b(),并輸出調用結果,最后再次輸出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("對象xl的屬性值:i="+xl.i+"ch="+x1.ch,20,20);

g.drawString("對象xl的屬性值:i="+x2.i+"ch=H+x2.ch,20,40);

al=b(xl);a2=b(x2);

g.drawString("以xl為實參調用方法b()生成的新的A類對象的屬性值:i="

+al.i+”ch=u+al.ch,20,60);

g.drawString("以x2為實參調用方法b()生成的新的A類對象的屬性值:i="

+a2.i+"ch="+a2.ch,20,80);

g.drawString("調用后,對象xl的屬性值:i=H+xl.i+"ch="+xl.ch,20,100);

g.drawString("調用后,對象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.請按如下要求定義兩個類A和B,類A中定義一個char類型屬性x(將其賦值為65)和一個在小

程序窗口中輸出x值的方法myPrint()。類B是類A的子類,其中定義一個int類型屬性y(將其賦

值為16)和String類型的屬性s(將其賦值為“javaprogram!”);類B中也定義了一個名為myPrint

的方法,其功能為在小程序窗口中輸出y和s值;類B中還有一個方法printAll(),該方法中分別調

用父類和子類的myPrint。方法做輸出。編寫一個Applet,在主類Apple”中創(chuàng)建類B的對象b,調

用printAH()方法輸出對象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.請按如下要求定義兩個類A和B,類A中定義一個方法area(floatr),其返回值類型為float型,

該方法的功能是返回半徑為r的圓的面積(圓的面積公式為:兀巴其中r是圓的半徑)。類B是類A

的子類,其中也定義了一個名為area的方法area(floatr),該方法的功能是返回半徑為1?的球的表

面積(球的表面積的計算公式為:4兀己其中r為球的半徑),返回值類型也為float型;在類B中

還定義了另一個方法myPrint(floatr),功能是分別調用父類和子類的方法area()計算半徑相同的圓

的面積和球的表面積并輸出調用結果。編寫一個Application,創(chuàng)建類B的對象b,在主方法main()

中調用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.請編寫Applet,它由三個類定義組成:類A中只定義了一個類型為String的對象x和帶有一個參

數(shù)的構造函數(shù)(用來初始化x);類B是類A的子類,其中定義了一個int類型的變量x和一個帶兩

個參數(shù)的構造函數(shù)(用來為父類中的對象x和類B中的變量x做初始化),還定義了一個方法

myPrint(),功能為輸出父類A中的x和其子類B中的x的值;主類Applet1中定義了B類的對象b,

請通過創(chuàng)建b為上述兩個x賦值(類A中的x的值為“這是父類的x.",類B中的x的值為68),通

過paint。方法在坐標(20,30)處顯示兩個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.請編寫Applet,它由三個類定義組成,類名分別為A、B和Appletl:類A中定義了類型為ini的

變量i、類型為float的變量f和類型為char的變量ch;類A還定義了三個構造函數(shù),其中,第一個構

造函數(shù)帶有一個int類型的參數(shù)(用于初始化i),第二個構造函數(shù)帶有兩個參數(shù)(參數(shù)類型分別為int

和float,用于初始化i和f),第三個構造函數(shù)帶有三個參數(shù)(參數(shù)類型分別為int、float和char,用于

初始化i、f和ch)。類B是類A的子類,其中僅定義了一個類型為boolean的變量b和一個帶四個

參數(shù)的構造函數(shù)(用來為父類中的變量i、f、ch和本類的變量b做初始化)。主類Appletl中定義了

一個初值為32.6的double型變量d和一個B類的對象b,請通過創(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;}

)

練習6(5)

掌握:接口、抽象類、最終類的編程;字符串的使用。

1.定義接口A,接口內有兩個方法:methodi(intx)和method2(intx,inty),它們的返回值類型均為

into請編寫一個Applet,并使其實現(xiàn)接口A:令方法methodi(intx)的功能是求5的x次方、方法

method2(intx,inty)的功能是求兩參數(shù)的最大值。在paint()方法中調用這兩個方法,顯示method1(2)

和method2(2,8)的結果。

@程序

importjava.awt.*;

importjava.applet.*;

publicclassApplet1extendsAppletimplementsA

(

publicvoidpaint(Graphicsg)

(

g.drawString("調用method1(2)的結果:"method1(2),20,20);

g.drawString("調用method2(2,8)的結果: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,并定義兩個抽象方法

volume(doubler)和area(doubler),它們的返回值類型均為float。再定義以類VolumeArea為父類

的子類VolumeAndArea,在該子類中實現(xiàn)父類中的抽象方法:方法volume(doubler)的功能是求半

徑為r的球的體積(公式為:4兀/+3);方法area(doubler)的功能是求半徑為r的圓的面積(公式為:

KF2)O請編寫一個Applicalion,在其主類中定義一個VolumeAndArea類的對象x,通過對象x求半

徑為r(r的值由命令行給定)的球的體積及該球最大切面的圓的面積,并輸出計算結果。

@程序

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,在其中定義一個final變量myPI,其類型為float,值為3.1416;類A中還定義一個final

方法ml(floatr),該方法返回值類型為float,功能是求半徑為r的圓的周長(公式為:2兀r)。再定

義類A的子類B,B為final類,其中定義一個返回值類型為void的方法m2(floatr),功能是先調

用父類的方法ml()求半徑為r的圓的周長并輸出計算結果,然后輸出同一個圓的面積(公式為:nF)。

請編寫一個Application,利用類B計算并輸出半徑為5的圓的周長和面積。

@程序

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+"的圓的周長="+011(r));

System.out.println("半徑為"+r+"的圓的面積="+myPI*r*r);

)

)

4.編寫應用程序,功能為:從命令行傳入一個包含十個字符的字符串,把該字符串與程序中給定的

字符串“bacdbcabca”依次比較,統(tǒng)計兩個串中對應字符相等的數(shù)目。然后輸出命令行輸入的字符串,

并把兩個串中對應字符不相等的字符替換為'@后生成的新串輸出,最后輸出兩個串中相等字符的數(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.請編寫一個Application實現(xiàn)如下功能:接受命令行中給出的一個字母串,先將該串原樣輸出,然

后判斷該串的第一個字母是否為大寫,若是大寫則統(tǒng)計該串中大寫字母的個數(shù),并將所有大寫字母

輸出;否則輸出信息串”第一個字母不是大寫字母!〃。

@程序

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+”個大寫字母。”);

elseSystem.out.println("第一個字母不是大寫字母!)

elseSystem.out.println("請給出命令行參數(shù)!”);

練習7(5)

掌握:命令行傳參數(shù)。

1.請編寫一個實現(xiàn)如下功能的Application:比較命令行中給出的兩個整數(shù)是否相等,并根據比較結

果顯示“相等"或"不相等"。

publicclassClassi

(

publicstaticvoidmain(String[]args)

(

intx,y;

Stringstr=u

if(args.length<2)

(

System.out.println("請在命令行輸入兩個參數(shù))

System.exit(-l);

)

x=lnteger.parselnt(args[01);

y=lnteger.parselnt(argsll]);

if(x==y)str="命令行輸入的兩個參數(shù)相等";

elsest尸"命令行輸入的兩個參數(shù)不相等”;

System.out.println(str);

)

)

2.編寫一個Application程序,比較命令行中給出的兩個字符串是否相等,并輸出比較的結果。

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個整數(shù),求3個整數(shù)的和、積、最大值、最小值。

publicclassClassi

(

publicstaticvoidmain(String[]args)

(

intn=args.length;

if(n<3)

System.out.println("請輸入三個整數(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.請編寫一個Application實現(xiàn)如下功能:通過命令行中給出的float型參數(shù)x,和int型參數(shù)y(如

果參數(shù)少于兩個,給出提示后退出系統(tǒng)),調用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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論