




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《Java语言程序设计》上机练习题2
一、java语言基础和面向对象
练习1(4)
掌握:各种数据类型变量的定义和访问,各种数据类型常量的使用,数据类型转换。
1.编写Applet,其功能为:取两个小于1000的正随机数,若两个数均小于10,先将它们都放大50
倍,否则不改变这两个数。最后,求这两个数的和并将结果输出。要求这些功能在主类的方法init()
中实现,并使输出结果仅保留小数点后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的正随机整数,并输出该数的平方根。要求这
些功能在主类的方法paint()中实现,并使输出结果在四拾五入后保留小数点后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之间的正随机整数,如果该数为奇数则求它的平方
根并转换成float型数后再输出;如果该数为偶数则求它的平方并输出。
@程序
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的正随机整数,将其以如下形式输出:
所取随机数为:***
它的百位数字为:*
它的十位数字为:*
它的个位数字为:*
@程序
//importjava.io.*;
publicclassClassi
(
publicstaticvoidmain(Stringf]args)
(
intx=(int)(Math.random()*800);
System.out.println("所取随机数为:"+x);
System.out.println("它的百位数字为:"+x/100);
System.out.println("它的十位数字为:"+x%100/10);
System.out.println("它的个位数字为:"+x%10);
//try{System.in.read();}catch(IOExceptione){}
练习2(5)
掌握:(1)数组的定义、创建和初始化。
(2)方法的定义和调用。
(3)方法的参数是数组、方法的返回值是数组的编程。
(4)方法的递归调用。
(5)在应用程序中,接受并处理命令行参数。
1.请编写一个Applet,其中定义了两个double类型数组a和b,还定义了一个方法square()。数组a
各元素的初值依次为1.2、2.3、3.4、4.5、5.6,数组b各元素的初值依次为9.8、8.7、7.6、6.5、5.4、
4.3;方法square()的参数为double类型的数组,返回值为float类型的数组,功能是将参数各元素的
平方做为返回数组的元素的值。请在方法paim()中分别以a和b为实在参数调用方法square(),
并将返回值输出在屏幕上。要求调用square(a)的返回数组输出在Applet的一行上,数组的第一个
元素的输出坐标为(20,20),其后的每个元素间隔40个像素。调用square(b)的返回数组输出在
Applet的一列上,即下标为i+l(i=0』,2,3,……)的元素的值,在下标为i的元素的值的正下方,其返回数
组的第一个元素的输出坐标为(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实现如下功能:在主类中定义两个double类型数组a和b,再定义一个方
法sqrt_sum()。数组a各元素的初值依次为1.2、2.3、3.4、4.5、5.6,数组b各元素的初值依次为
9.8、8.7、7.6、6.5、5.4、4.3;方法sqrt_sum()的参数为double类型的数组,返回值类型为float型,
功能是求参数各元素的平方根之和。请在主方法main()中分别以a和b为实在参数调用方法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("数组a各元素的平方根之和为:“+sqrt_sum(a));
System.out.println("数组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实现如下功能:在主类中定义方法fl(intn)和方法f2(intn),它们的功
能均为求n!,方法fl()用循环实现,方法f2()用递归实现。在主方法main()中,以4为实在参
数分别调用方法fl()和方法&(),并输出调用结果。
@程序
//importjava.io.*;
publicclassClassi
(
publicstaticvoidmain(StringlJargs)
(
System.out.println("用循环实现求n!的结果(n=4):"+fl(4));
System.out.println("用递归实现求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实现如下功能:接受命令行中给出的三个参数xl、x2和op,其中xl和
x2为float型数,op是某个算数运算符(+、一、*、/之一),请以如下形式输出xl和x2执行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("命令行参数错!”);System.exit(-l);}
}
5.编写Application,主类中包含以下两个自定义方法:voidprintA(int[]array)和int[]
myArray(intn)o方法printA(int[]array)的功能是把参数数组各元素在屏幕的一行中输出。方法
myArray(intn)的功能是生成元素值是50~100之间的随机值的int型数组,数组元素的个数由参数n
指定。在应用程序的main()方法中,用命令行传入的整数作为myArray(intn)方法调用时的实
际参数,生成一个整型数组,并调用方法printA()输出该数组的所有元素。
@程序
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("缺命令行参数!”);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(),它们都只有一个参
数,其中一个arrayMin()方法的参数为int型数组,返回值类型为int型数;另一个arrayMin()方法
的参数为double型数组,返回值类型为double型数;这两个方法的功能均为返回参数数组元素的最
小值。通过paint()方法调用上述两个同名方法arrayMin(),求数组a(其元素的值依次为26,82,-3,
65,18,9)和数组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("数组a的最小元素的值为:arrayMin(a),20,20);
g.drawString(”数组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。,它们都只有一个
参数,参数的类型分别为int型、float型和double型,它们的功能均为返回参数的平方根,返回值
的类型与参数的类型相同。在主方法main()中调用上面的三个方法,这三个方法的参数均来自命令
行参数,最后将计算结果输出在屏幕上。
@程序
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("缺命令行参数!");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),它们的功能均为求两个参数之和,返回值类型与第一个
参数的类型相同。在主类Applet1中,通过paint()方法调用上面的三个方法,实现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还定义了一个带有一个参数的构造函数(用于
初始化f),和两个公共方法setk()和getk(),其中selk()的功能为给私有属性k赋值,getk()的功能为
返回私有属性k的值。类B是类A的子类,其中仅定义了一个类型为boolean的属性b和一个带两
个参数的构造函数(用来为父类中的变量f和本类的变量b做初始化)。主类Appletl中定义了一个
初值为123的int型变量n和一个B类的对象x,请通过创建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),该方法的功能是返回参数dd的整数部分。类B是类A的子类,其中定义
一个float类型变量f(将其赋值为18.3)和一个方法int_f(floatff),该方法的功能是返回参数ff
的整数部分。编写一个Application,创建类B的对象b,在主方法main()中先显示d和f的值,然
后分别以d和f为实在参数调用int_d()方法和int_f()方法,并将它们的返回值显示在屏幕上。
@程序
publicclassClassi
(
publicstaticvoidmain(Stringljargs)
(
Bb=newB();
System.out.println("d="+b.d+"f="+b.f);
System.out.println("d的整数部分="+_d(b.d)+”f的整数部分="+_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()实现它们的功能。
@程序
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)方法的参数为类对象、方法的返回值为类对象。
(2)方法覆盖:在子类中调用被子类覆盖了的父类的同名方法。
(3)属性隐藏:在子类中访问被子类隐藏了的父类的同名属性。
(4)构造函数的重载。
1.请编写一个Applet,它由两个类定义组成:类A中定义了short型变量i和char型变量ch,及一
个带两个参数的构造函数(为变量i和ch做初始化)。主类Appletl中创建了两个A类的对象xl(i
的初始值为12,ch的初始值为,6,)和x2(i的初始值为62,ch的初始值为65),还定义了一个方法
b,b的参数和返回值均为A类的对象,功能为将参数对象的属性i加3,属性ch也加3,使返回结
果为另一个A类的对象(即不破坏实在参数的值)。请在paint()方法中先输出xl、x2的属性值,然
后再分别以xl、x2为实在参数调用方法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”中创建类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,创建类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和带有一个参
数的构造函数(用来初始化x);类B是类A的子类,其中定义了一个int类型的变量x和一个带两
个参数的构造函数(用来为父类中的对象x和类B中的变量x做初始化),还定义了一个方法
myPrint(),功能为输出父类A中的x和其子类B中的x的值;主类Applet1中定义了B类的对象b,
请通过创建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还定义了三个构造函数,其中,第一个构
造函数带有一个int类型的参数(用于初始化i),第二个构造函数带有两个参数(参数类型分别为int
和float,用于初始化i和f),第三个构造函数带有三个参数(参数类型分别为int、float和char,用于
初始化i、f和ch)。类B是类A的子类,其中仅定义了一个类型为boolean的变量b和一个带四个
参数的构造函数(用来为父类中的变量i、f、ch和本类的变量b做初始化)。主类Appletl中定义了
一个初值为32.6的double型变量d和一个B类的对象b,请通过创建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,并使其实现接口A:令方法methodi(intx)的功能是求5的x次方、方法
method2(intx,inty)的功能是求两参数的最大值。在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,在该子类中实现父类中的抽象方法:方法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”依次比较,统计两个串中对应字符相等的数目。然后输出命令行输入的字符串,
并把两个串中对应字符不相等的字符替换为'@后生成的新串输出,最后输出两个串中相等字符的数
目。
@程序
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实现如下功能:接受命令行中给出的一个字母串,先将该串原样输出,然
后判断该串的第一个字母是否为大写,若是大写则统计该串中大写字母的个数,并将所有大写字母
输出;否则输出信息串”第一个字母不是大写字母!〃。
@程序
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("请给出命令行参数!”);
练习7(5)
掌握:命令行传参数。
1.请编写一个实现如下功能的Application:比较命令行中给出的两个整数是否相等,并根据比较结
果显示“相等"或"不相等"。
publicclassClassi
(
publicstaticvoidmain(String[]args)
(
intx,y;
Stringstr=u
if(args.length<2)
(
System.out.println("请在命令行输入两个参数)
System.exit(-l);
)
x=lnteger.parselnt(args[01);
y=lnteger.parselnt(argsll]);
if(x==y)str="命令行输入的两个参数相等";
elsest尸"命令行输入的两个参数不相等”;
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个整数,求3个整数的和、积、最大值、最小值。
publicclassClassi
(
publicstaticvoidmain(String[]args)
(
intn=args.length;
if(n<3)
System.out.println("请输入三个整数!”);
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实现如下功能:通过命令行中给出的float型参数x,和int型参数y(如
果参数少于两个,给出提示后退出系统),调用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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025租房合同附家具清单
- 2025上海鹏发保洁服务有限公司员工劳动合同
- 2025年某合同段兰渝客专双线有砟铁路隧道施工组织方案
- 2025至2030中国工业磷铵行业市场运行态势及竞争格局与投资机会报告
- 2025至2030中国体育俱乐部行业市场发展分析及发展趋势与投资机会报告
- 河南三门峡市招聘综合应急救援队队员笔试历年参考题库附带答案详解
- 四川2025年四川省住房和城乡建设厅所属事业单位选调9人笔试历年参考题库附带答案详解
- 浙江国企招聘2025温州瑞安市智程优管停车服务有限公司招聘25人笔试参考题库附带答案详解析集合
- 2025辽宁沈阳副食集团所属企业招聘25人笔试参考题库附带答案详解析集合
- 2025至2031年中国智能化数字控制全功能焊机行业投资前景及策略咨询研究报告
- 公司员工升职加薪制度模板
- 2024年运动员培养合同:体育人才委托培养协议3篇
- 2025年重庆环卫集团有限公司招聘笔试参考题库含答案解析
- 塔吊安拆工培训
- DB50T 395-2011 城市道路检测技术规程
- 如何利用图书馆资源培养孩子的阅读习惯
- 2025福建福州地铁招聘488名工作人员高频重点提升(共500题)附带答案详解
- 环保行业绿色产业项目投资计划书
- 《招标投标法》考试题库200题(含答案)
- 某有限公司业务员提成管理制度方案范例(3篇)
- R1快开门式压力容器操作考试题库(含答案)
评论
0/150
提交评论