上机练习题 一、java语言基础和面向对象 练习1(4) 掌握:各种数据类型变量的定义和访问,各种数据类型常量的使用,数据类型转换。 1.编写Applet,其功能为:取两个小于1000的正随机数,若两个数均小于10,先将它们都放大50 倍,否则不改变这两个数。最后,求这两个数的和并将结果输出。要求这些功能在主类的方法() 中实现,并使输出结果仅保留小数点后4位(不需四拾五入)。 @程序 import java.awt.*; import java.applet..◆: public void init() Label outl=new label(" Label out2-new Label( doublex.y, add(out1): add(out2): x=Math random()*1000 y=Math.random(1000 ifx<10&y<10)x*=50 y*=50} out1.setText("+x+"+"+y+"约等于"): out2.setText(""+(int)((x+y)1000I000.0). 2.请编写一个Applet,.其功能为:取一个小于10000的正随机整数,并输出该数的平方根。要求这 些功能在主类的方法pait()中实现,并使输出结果在四拾五入后保留小数点后4位。 @程序 import java.awt, import java apple public class Applet1 xtends Applet public void paint(Graphics g) intk
上机练习题 一、java 语言基础和面向对象 练习 1(4) 掌握:各种数据类型变量的定义和访问,各种数据类型常量的使用,数据类型转换。 1. 编写 Applet,其功能为:取两个小于 1000 的正随机数,若两个数均小于 10,先将它们都放大 50 倍,否则不改变这两个数。最后,求这两个数的和并将结果输出。要求这些功能在主类的方法 init( ) 中实现,并使输出结果仅保留小数点后 4 位(不需四捨五入)。 @程序 import java.awt.*; import java.applet.*; public class Applet1 extends Applet { public void init( ) { Label out1=new Label(" "); Label out2=new Label(" "); double x,y; add(out1); add(out2); x=Math.random( )*1000; y=Math.random( )*1000; if(x<10&y<10) { x*=50; y*=50; } out1.setText(""+x+"+"+y+" 约等于 "); out2.setText(""+(int)((x+y)*10000)/10000.0); } } 2. 请编写一个 Applet,其功能为:取一个小于 10000 的正随机整数,并输出该数的平方根。要求这 些功能在主类的方法 paint( ) 中实现,并使输出结果在四捨五入后保留小数点后 4 位。 @程序 import java.awt.*; import java.applet.*; public class Applet1 extends Applet { public void paint(Graphics g) { int k;
k=(int)(Math random()*1000): g drawString("+k+"的平方根约等于+ (imt(Math.sqrt(k)+0.00005)*10000/10000.0,20,20 3.编写一个Applet,其功能为:取一个50-200之间的正随机整数,如果该数为奇数则求它的平方 根并转换成0at型数后再输出:如果该数为偶数则求它的平方并输出。 @程序 import java.awt. import java.applet. public class Applet1 extends Applet public void paint(Graphicsg) intk. k=50+(int)(Math.random()*150). ik%21=0) ("+k+的平方根约等于+(float)Mah.sqrt(k,)20,20 c g drawString("+k+"的平方等于"+kk,20,20: 4.请编写一个,其功能为:取一个小于800的正随机整数,将其以如下形式输出: 所取随机数为:幸* 它的百位数字为:* 它的十位数字为:* 它的个位数字为:* @程序 //import java.io.*; public class Classl public static void main(Stringargs) int x=(int)(Math random()*800) System.out.printn("所取随机数为:"+x, System.out.println("它的百位数字为:"+x/100: System..ouprintn(它的十位数字为:"+x%100/1O) System.outprint(它的个位数字为:+x%1 //try System.in.read():)catch(IOException e))
k=(int)(Math.random( )*1000); g.drawString(""+k+" 的平方根约等于 "+ (int)((Math.sqrt(k)+0.00005)*10000)/10000.0,20,20); } } 3. 编写一个 Applet,其功能为:取一个 50~200 之间的正随机整数,如果该数为奇数则求它的平方 根并转换成 float 型数后再输出;如果该数为偶数则求它的平方并输出。 @程序 import java.awt.*; import java.applet.*; public class Applet1 extends Applet { public void paint(Graphics g) { int k; 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 的正随机整数,将其以如下形式输出: 所取随机数为:*** 它的百位数字为:* 它的十位数字为:* 它的个位数字为:* @程序 //import java.io.*; public class Class1 { public static void main (String[] args) { int x=(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(IOException e){ } } }
练习2(5) 掌提:(1)数组的定义、创建和初始化。 (2)方法的定义和调用。 (3)方法的 数是数组、 方法的返回值是数组的编程 (4)方法的递归调用。 (5)在应用程序中,接受并处理命令行参数: 1.请编写一个Applet,.其中定义了两个double类型数组a和b,还定义了一个方法square().数组a 各元素的初值依次 1.2、23、3.4、4.5、5.6 数组b各元素的初值依次为9.8、 87 7.6、6.5、5.4 4.3:方法square()的参数为double类型的数组,返回值为oat类型的数组,功能是将参数各元素的 平方做为返回数组的元素的值。请在方法paint()中分别以a和b为实在参数调用方法square((), 并将返回值输出在屏幕上。要求调用square(a)的返回数组输出在Applet的一行上,数组的第一个 元素的输出坐标为(20,20),其后的每个元素间隔40个像素。调用squar心(b)的返回数组输出在 Applet的一列上,即下标为i+1(=01,23)的元素的值,在下标为i的元素的值的正下方,其返回数 组的第 一个元素的输出坐标为(20,40),行隔为20像素。 @程序 import iava awt◆, import java applet. public class Applet1 extends Apple double a[={1.2,2.3,3.4,4.5,5.6} double[1b=9.88.7,7.6,6.55.4,4.3 public void paint(Graphics g) float[]x=new float[alength]: float[]y=new float[b.length]: x=square(a), y-square(b) for(inti=0:i<x.length;i++) g.drawString("+x[门,20+i*40,20y for(int i=0:isy.length:it+) g drawString("+vlil.20.40+i*20) float[]square(double]) float[y=new float[x.length]: for(inti=0:i<x.length;i+) y[=(oat)(x*xi return y;
练习 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 类型的数组,功能是将参数各元素的 平方做为返回数组的元素的值。请在方法 paint()中分别以 a 和 b 为实在参数调用方法 square( ), 并将返回值输出在屏幕上。要求调用 square( a )的返回数组输出在 Applet 的一行上,数组的第一个 元素的输出坐标为(20,20),其后的每个元素间隔 40 个像素。调用 square( b )的返回数组输出在 Applet 的一列上,即下标为 i+1(i=0,1,2,3,......)的元素的值,在下标为 i 的元素的值的正下方,其返回数 组的第一个元素的输出坐标为(20,40),行隔为 20 像素。 @程序 import java.awt.*; import java.applet.*; public class Applet1 extends Applet { double a[ ]={1.2,2.3,3.4,4.5,5.6}; double[ ] b={9.8,8.7,7.6,6.5,5.4,4.3}; public void paint(Graphics g) { float[ ] x=new float[a.length]; float[ ] y=new float[b.length]; x=square(a); y=square(b); for(int i=0; i<x.length;i++) g.drawString(""+x[i],20+i*40,20); for(int i=0; i<y.length;i++) g.drawString(""+y[i],20,40+i*20); } float[ ] square(double x[ ]) { float[ ] y=new float[x.length]; for(int i=0; i< x.length; i++) y[i]=(float)(x[i]*x[i]); return y; } }
2.请编写一个Application实现如下功能:在主类中定义两个double类型数组a和b,再定义一个方 法sq 。m人数组a各元者的都值依放为1228.3445,56,数组b各元素的初值佐放为 9.8、 6.5、54、43 sqrt_sum )的参数为double类型的数组 返回值类型为1ot型 功能是求参数各元素的平方根之和.请在主方法main()中分别以a和b为实在参数调用方法sqrt_sum (),并将返回值输出在屏幕上。 @程序 //importjavaio.*; public class Classl static double a={1.2.2.3,3.4.4.55.6}: static double b[]=9.8,8.7,7.6,6.5,5.44.3g public static void main(Stringargs) System.("数组a各元素的平方根之和为:"+sqrt_sum(a)以 System.("数组b各元素的平方根之和为:"+sqrt_sum(b) //trychar =(char)System.in.read()catch(IOExceptione) static float sqrt_sum(double[]x) double y=0.0: for(int i=0:isx.length:++) y+=Math.sqrt(x[i]): return(float)y; 3.请编写一个Application实现如下功能:在主类中定义方法f1(intm和方法f2(intn),它们的功 能均为求nl,方法f1()用循环实现,方法2()用递归实现。在主方法mai()中,以4为实在参 数分别调用方法1()和方法2(),并输出调用结果。 @程序 //importjavaio.*: public static void main(Stringargs) System.out.printn("用循环实现求nl的结果(n=4):"+f(4) System.out.print("用递归实现求nl的结果(n=4):"+2(4) //rychar c=(char)System.in.read():)catch(IOExceptione)
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 ( ),并将返回值输出在屏幕上。 @程序 //import java.io.*; public class Class1 { static double a[ ]={1.2,2.3,3.4,4.5,5.6}; static double b[ ]={9.8,8.7,7.6,6.5,5.4,4.3}; public static void main (String[] args) { System.out.println("数组 a 各元素的平方根之和为:"+sqrt_sum(a)); System.out.println("数组 b 各元素的平方根之和为:"+sqrt_sum(b)); //try{ char c=(char)System.in.read( );}catch(IOException e){ } } static float sqrt_sum(double[ ] x) { double y=0.0; for(int i=0; i<x.length; i++) y+=Math.sqrt(x[i]); return (float)y; } } 3. 请编写一个 Application 实现如下功能:在主类中定义方法 f1(int n) 和方法 f2(int n),它们的功 能均为求 n!,方法 f1( ) 用循环实现,方法 f2( )用递归实现 。在主方法 main( ) 中,以 4 为实在参 数分别调用方法 f1( ) 和方法 f2( ),并输出调用结果。 @程序 //import java.io.*; public class Class1 { public static void main (String[] args) { System.out.println("用循环实现求 n! 的结果(n=4):"+f1(4)); System.out.println("用递归实现求 n! 的结果(n=4):"+f2(4)); //try{ char c=(char)System.in.read( );}catch(IOException e){ }
static longfl(int n) long k=1: for(int i=1:i=3) x=Float.valueOf(args[0]).floatValuc(). y=Float.valueOf(args[1]).float Value(); op=args[2].charAt(0). switch(op) case:System.out.println(x+"+y+"+(xy))break case:System.out.println(x+"++(xy)).break: case.System.out.println(x+"+y+"=+(xy));break case System.out.println(x+"/"+y+"="+(x/v)break: default-Sy stem out printlp"非法运算符1) } else {System.outprintn("命令行参数错I"),System.exi(-l,片} 5.编写Application,主类中包含以下两个自定义方法:void printA(int[】aray)和int0
} static long f1(int n) { long k=1; for(int i=1;i= 3) { x=Float.valueOf(args[0]).floatValue( ); y=Float.valueOf(args[1]).floatValue( ); op=args[2].charAt(0); switch(op) { case '+': System.out.println(x+"+"+y+"="+(x+y)); break; case '-': System.out.println(x+"-"+y+"="+(x-y)); break; case '*': System.out.println(x+"*"+y+"="+(x*y)); break; case '/': System.out.println(x+"/"+y+"="+(x/y)); break; default : System.out.println("非法运算符!"); } } else { System.out.println("命令行参数错!"); System.exit(-1); } } } 5. 编写 Application,主类中包含以下两个自定义方法: void printA( int[ ] array )和 int[]
my Array(imtn)。方法printA(inl】array)的功能是把参数数组各元素在屏幕的一行中输出。方法 m)的功能是生成元素值是50-10之间的随机值的imt型数组,数组元素的个数由参数n 指定。在应用程序的main()方法中,用命令行传入的整数作为my n)方法调用时的实 际参数,生成一个整型数组,并调用方法prtA()输出该数组的所有元素。 @程序 public class Class1 public static void main(Stringargs) if(args.length>0) n-Integer.parseInt(args[]) int[a=new int[n]: a=myArray(n); printA(a): cl{System.out.println("缺命令行参数"),System.exit(-l} static void printA(int[]x) for(inti=0;i<x.length;i++) System.out.print(x[]+""). System.outprintin()方 return; static int myArray(int k) intx]new int[k] for(int i=i<k ++ x[i]=50+(int)(Math.random()*50); return x; 练习3(3) 掌握:方法的重载。 L.请编写一个Applet,.其主类名为Appletl,其中包含两个同名方法arrayMin((),它们都只有一个参 数,其中一个arrayMin(()方法的参数为imt型数组,返回值类型为it型数:另一个arrayMin()方法 的参数为double型数组,返回值类型为double型数:这两个方法的功能均为返回参数数组元素的最 小值。通过paint()方法调用上述两个同名方法arrayMin(),求数组a(其元素的值依次为26,82,3, 65,18,9)和数组b(其元素的值依次为3.6,572,85,788)的最小元素的值并输出 @程序 import java.awt.*;
myArray(int n)。方法 printA(int[ ] array)的功能是把参数数组各元素在屏幕的一行中输出。方法 myArray(int n)的功能是生成元素值是 50~100 之间的随机值的 int 型数组,数组元素的个数由参数 n 指定。在应用程序的 main( )方法中,用命令行传入的整数作为 myArray(int n) 方法调用时的实 际参数,生成一个整型数组,并调用方法 printA( )输出该数组的所有元素。 @程序 public class Class1 { static int n; public static void main (String[] args) { if(args.length > 0) { n=Integer.parseInt(args[0]); int[ ] a=new int[n]; a=myArray(n); printA(a); } else { System.out.println("缺命令行参数!"); System.exit(-1); } } static void printA(int[ ] x) { for(int i=0; i< x.length; i++) System.out.print(x[i]+" "); System.out.println( ); return; } static int[ ] myArray(int k) { int x[ ]=new int[k]; for(int i=0; i< k; i++) x[i]=50+(int)(Math.random( )*50); return x; } } 练习 3(3) 掌握: 方法的重载。 1. 请编写一个 Applet,其主类名为 Applet1,其中包含两个同名方法 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) 的最小元素的值并输出。 @程序 import java.awt.*;
import java applet.* public class Applet1 extends Apple inta={26,82,-3,65.189: double b1=f3.6.57.2.8.5.78.8 public void paint(Graphics g) gdrawString("数组a的最小元素的值为:"+arrayMin(a),20,20) g.drawString("数组b的最小元素的值为:"+arrayMin(b),20,40): int arrayMin(int x[1) int y=x[0] for(int i=1:ix[i])y=x[i]: return y; double arrayMin(doublex[) double y=x] for(int i=1:ix[i])y=x[i]: return y; 2.请编写一个A ,其主类名为Class1,其中包含三个同名方法mySqrt(0,它们都只有一个 参数,参数的类型分别为int型、oat型和double型,它们的功能均为返回参数的平方根,返回值 的类型与参数的类型相同。在主方法mai()中调用上面的三个方法,这三个方法的参数均来自命令 行参数,最后将计算结果输出在屏幕上。 @程序 static int n: public static void main(String]args) if(args.length>=3) int n; float f. double d: n-=Integer.parseInt(args[]) f=Float.valueOf(args[1]).float Value(). d=Double.valueOf(args[2]).doubleValue(); System.out.printn(n+"的平方根为:"+mySqrt(n): System.out.printn(f+"的平方根为:"+mySqrt(f)以 System.out.printin(d+"的平方根为:"+mySqrt(d) } else {System.out.printn("缺命令行参数I"方System.exit(-l片}
import java.applet.*; public class Applet1 extends Applet { int a[ ]={26,82,-3,65,18,9}; double b[ ]={3.6,57.2,8.5,78.8}; public void paint(Graphics g) { g.drawString("数组 a 的最小元素的值为: "+ arrayMin(a),20,20); g.drawString("数组 b 的最小元素的值为: "+ arrayMin(b),20,40); } int arrayMin(int x[ ]) { int y=x[0]; for(int i=1; ix[i]) y=x[i]; return y; } double arrayMin(double x[ ]) { double y=x[0]; for(int i=1; ix[i]) y=x[i]; return y; } } 2. 请编写一个 Application,其主类名为 Class1,其中包含三个同名方法 mySqrt(),它们都只有一个 参数,参数的类型分别为 int 型、float 型和 double 型,它们的功能均为返回参数的平方根,返回值 的类型与参数的类型相同。在主方法 main( ) 中调用上面的三个方法,这三个方法的参数均来自命令 行参数,最后将计算结果输出在屏幕上。 @程序 public class Class1 { static int n; public static void main (String[] args) { if(args.length >= 3) { int n; float f; double d; n=Integer.parseInt(args[0]); f=Float.valueOf(args[1]).floatValue( ); d=Double.valueOf(args[2]).doubleValue( ); System.out.println(n+"的平方根为: "+mySqrt(n)); System.out.println(f+"的平方根为: "+mySqrt(f)); System.out.println(d+"的平方根为: "+mySqrt(d)); } else { System.out.println("缺命令行参数!"); System.exit(-1); }
static int mySqrt(int x) return(int)Math.sqrt(x); static float mySqrt(float x) return(float)Math.sqrt(x);) static double mySqrt(double x) return Math.sqrt(x): 请编写一个Aple,其主类名为Aple1,其中包含三个同名方法am byte y)d0o x,double y小addM(double x.double y),它们的功能均为求两个参数之和,返回值类型与第一个 参数的类型相同。在主类Applet1中,通过pain()方法调用上面的三个方法,实现12345+67、 89.6f+6.9e8、0.987654321+32.1,然后将计算结果输出,输出位置分别为坐标(20,40)、(20,60) (20.80). @程序 import java.awt.◆ import java applet.◆; public class Appletl extends Applet public void paint(Graphicsg) g.drawString("12345+67="+addM12345,67),20,40, g.drawString"89.6+6.9e-8="+addM(89.6f.6.9e-8).20.60: gdrawString("0.987654321+32.1="+addM0.987654321,32.1),20,80 int addM(int x.byte y) return x+y: float addM(float x,double y) return (float)(x+y); double addM(double x.double y) return x+y; 练习4(3) 掌握:(山)类的继承 (2)在子类中如何操作父类中的私有属性 (③)变量的作用域 L.请编写Applet,它由三个类定义组成,类名分别为A、B和AppletI:类A中定义了一个类型为 loat的属性f和一个类型为byte的私有屈性k:类A还定义了一个带有一个参数的构造函数(用于 初始化f),和两个公共方法sek()和gek()其中etk()的功能为给私有属性k赋值,getk()的功能为 返回私有属性k的信 类B是类A的子类, 其中仅定义了一个类型为boolean的属性b 一个带两 个参数的构造函数(用来为父类中的变量f和本类的变量b做初始化)。主类Ap即l1中定义了一个 初值为123的it型变量n和一个B类的对象x,请通过创建x为上述f和b赋值(f的值为68.963,b 的值为tue,在paintO方法中,给A类的私有属性k赋值66,然后显示f,k,b,n的值
} static int mySqrt(int x) { return (int)Math.sqrt(x); } static float mySqrt(float x) { return (float)Math.sqrt(x); } static double mySqrt(double x) { return Math.sqrt(x); } } 3. 请编写一个 Applet,其主类名为 Applet1,其中包含三个同名方法 addM(int x, byte y)、addM(float x,double y)、addM(double x,double y),它们的功能均为求两个参数之和,返回值类型与第一个 参数的类型相同。在主类 Applet1 中,通过 paint( )方法调用上面的三个方法,实现 12345+67、 89.6f+6.9e-8、0.987654321+32.1,然后将计算结果输出,输出位置分别为坐标(20,40)、(20,60)、 (20,80)。 @程序 import java.awt.*; import java.applet.*; public class Applet1 extends Applet { public void paint(Graphics g) { g.drawString("12345+67 = "+ addM(12345,67),20,40); g.drawString("89.6+6.9e-8 = "+ addM(89.6f,6.9e-8),20,60); g.drawString("0.987654321+32.1 = "+ addM(0.987654321,32.1),20,80); } int addM(int x, byte y) { return x+y; } float addM(float x,double y) { return (float)(x+y); } double addM(double x,double y) { return x+y; } } 练习 4(3) 掌握: (1) 类的继承。 (2) 在子类中如何操作父类中的私有属性。 (3) 变量的作用域。 1. 请编写 Applet,它由三个类定义组成,类名分别为 A、B 和 Applet1:类 A 中定义了一个类型为 float 的属性 f 和一个类型为 byte 的私有属性 k;类 A 还定义了一个带有一个参数的构造函数(用于 初始化 f),和两个公共方法 setk( )和 getk( ), 其中 setk( ) 的功能为给私有属性 k 赋值,getk( )的功能为 返回私有属性 k 的值。类 B 是类 A 的子类,其中仅定义了一个类型为 boolean 的属性 b 和一个带两 个参数的构造函数(用来为父类中的变量 f 和本类的变量 b 做初始化)。主类 Applet1 中定义了一个 初值为 123 的 int 型变量 n 和一个 B 类的对象 x,请通过创建 x 为上述 f 和 b 赋值(f 的值为 68.963,b 的值为 true); 在 paint()方法中, 给 A 类的私有属性 k 赋值 66,然后显示 f,k,b,n 的值
@程序 import java.awt..◆ import ja va appl public class Applet extends Applet int n=123: x.setk((byte)66) g.drawString("f="+x.f+"k="+x.getk()+"b="+x.b+"n="+n,10,20); float f. private byte k A(float fl)f=fl: publie byte getk() return k; public void setk(byte m)k=m; class B extends A boolean b B(float ff,boolean bb)super(ff);b=bb; 2.请按如下要求定义两个类A和B,类A中定义一个double类型变量d(将其赋值为8.8)和一个 方法intd(double dd),该方法的功能是返回参数dd的整数部分。类B是类A的子类,其中定义 -个1oat类型变量f(将其赋值为18.3)和一个方法int f(float ff),该方法的功能是返回参数m 的整数部分。编写一个Application,创建类B的对象b,在主方法main()中先显示d和f的值,然 后分别以d和f为实在参数调用intd()方法和int)方法,并将它们的返回值显示在屏幕上。 @程序 public class Classl public static void main(String]args) Bb=new B() System.out.println("d="+b.d+f="+b.f); System.out.printn("d的整数部分="+b.int_d(b.d+”f的整数部分="+b.int_fb.f方 double d=8.8; int int_d(double dd)return (int)dd;)
@程序 import java.awt.*; import java.applet.*; public class Applet1 extends Applet { int n=123; B x=new B(68.963f,true); public void paint(Graphics g) { x.setk((byte)66); g.drawString("f="+x.f+" k="+x.getk( )+" b="+x.b+" n="+n,10,20); } } class A { float f; private byte k; A(float f1){ f=f1; } public byte getk( ){ return k; } public void setk(byte m){ k=m; } } class B extends A { boolean b; B(float ff,boolean bb){ super(ff); b=bb; } } 2. 请按如下要求定义两个类 A 和 B, 类 A 中定义一个 double 类型变量 d(将其赋值为 8.8)和一个 方法 int_d(double dd ),该方法的功能是返回参数 dd 的整数部分。类 B 是类 A 的子类,其中定义 一个 float 类型变量 f(将其赋值为 18.3)和一个方法 int_f(float ff ),该方法的功能是返回参数 ff 的整数部分。编写一个 Application,创建类 B 的对象 b,在主方法 main( ) 中先显示 d 和 f 的值,然 后分别以 d 和 f 为实在参数调用 int_d( )方法和 int_f( )方法,并将它们的返回值显示在屏幕上。 @程序 public class Class1 { public static void main (String[] args) { B b=new B( ); System.out.println("d="+b.d+" f="+b.f); System.out.println("d 的整数部分="+b.int_d(b.d)+" f 的整数部分="+b.int_f(b.f)); } } class A { double d=8.8; int int_d(double dd){ return (int)dd; } }
class B extends A float f=18.3f, intint _f(float ff)return (int)ff. 3.请编写一个Application ,在其主米中定义一个t类型变量;,并今其初估为123:主类中还 定义了m1和 m2)等两个方法。 个int类型变量 先输出类变量i的值,然后使类变量i增加值6后再次输出其值:主方法m()的功能是先输 出它的局部变量i的值,然后先后调用ml()和m2()实现它们的功能。 @程序 ublic class Classl static int i=123 public static void main(String[]args) int i=456 System..outprint(main()中的ie+i ml() m2(方 static void ml() int i=789; System.out.println("ml()中的i="+i: static void m2() System.(类变量i"+i) 1+=6, System.out.printn("加6后的类变量i="+i, 练习5(5) 掌握:(1)方法的参数为类对象、方法的返回值为类对象。 (2)方法覆盖:在子类中调用被子类覆盖了的父类的同名方法, (3)属性隐戴:在子类中访问被子类隐撒了的父类的同名属性。 (4)构造函数的重载。 L.请编写一个Applet,.它由两个类定义组成:类A中定义了short型变量i和char型变量ch,及 个带两个参数的构造函数(为变量i和ch做初始化)。主类Appletl中创建了两个A类的对象xI(行 的初始值为12,ch的初始值为6)和x2(1的初始值为62,h的初始值为65),还定义了一个方法 b,b的参数和返回值均为A类的对象,功能为将参数对象的属性i加3,属性山也加3,使返回结
class B extends A { float f=18.3f; int int_f(float ff){ return (int)ff; } } 3. 请编写一个 Application ,在其主类中定义一个 int 类型变量 i ,并令其初值为 123 ;主类中还 定义了 m1( )和 m2( )等两个方法。在主方法 main( ) 和方法 m1( )中也各定义一个 int 类型变量 i , 它们的初值分别为 456 和 789 ;方法 m1( )的功能是输出它的局部变量 i 的值;方法 m2( )的功能是 先输出类变量 i 的值 ,然后使类变量 i 增加值 6 后再次输出其值 ;主方法 main( ) 的功能是先输 出它的局部变量 i 的值,然后先后调用 m1( )和 m2( )实现它们的功能。 @程序 public class Class1 { static int i=123; public static void main (String[] args) { int i=456; System.out.println("main( ) 中的 i="+i); m1( ); m2( ); } static void m1( ) { int i=789; System.out.println("m1( ) 中的 i="+i); } static void m2( ) { 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 做初始化)。主类 Applet1 中创建了两个 A 类的对象 x1(i 的初始值为 12,ch 的初始值为’6’)和 x2(i 的初始值为 62,ch 的初始值为 65),还定义了一个方法 b,b 的参数和返回值均为 A 类的对象,功能为将参数对象的属性 i 加 3,属性 ch 也加 3,使返回结