2004~2005《Java程序設(shè)計(jì)》上機(jī)練習(xí)題new

上傳人:xinsh****encai 文檔編號(hào):27700576 上傳時(shí)間:2021-08-19 格式:DOC 頁(yè)數(shù):4 大小:390KB
收藏 版權(quán)申訴 舉報(bào) 下載
2004~2005《Java程序設(shè)計(jì)》上機(jī)練習(xí)題new_第1頁(yè)
第1頁(yè) / 共4頁(yè)
2004~2005《Java程序設(shè)計(jì)》上機(jī)練習(xí)題new_第2頁(yè)
第2頁(yè) / 共4頁(yè)
2004~2005《Java程序設(shè)計(jì)》上機(jī)練習(xí)題new_第3頁(yè)
第3頁(yè) / 共4頁(yè)

下載文檔到電腦,查找使用更方便

5 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《2004~2005《Java程序設(shè)計(jì)》上機(jī)練習(xí)題new》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《2004~2005《Java程序設(shè)計(jì)》上機(jī)練習(xí)題new(4頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、 2004《Java程序設(shè)計(jì)》 上機(jī)練習(xí)題 (共包括四部分、16個(gè)練習(xí)、共96個(gè)練習(xí)題,請(qǐng)使用“視圖”中的“文檔結(jié)構(gòu)圖”查看) 一、java語(yǔ)言基礎(chǔ)和面向?qū)ο螅ń滩膬?nèi)容的第1、2、3章) 練習(xí)1(4) 掌握:各種數(shù)據(jù)類(lèi)型變量的定義和訪(fǎng)問(wèn),各種數(shù)據(jù)類(lèi)型常量的使用,數(shù)據(jù)類(lèi)型轉(zhuǎn)換。 1. 編寫(xiě)Applet,其功能為:取兩個(gè)小于1000的正隨機(jī)數(shù),若兩個(gè)數(shù)均小于10,先將它們都放大50倍,否則不改變這兩個(gè)數(shù)。最后,求這兩個(gè)數(shù)的和并將結(jié)果輸出。要求這些功能在主類(lèi)的方法init( ) 中實(shí)現(xiàn),并使輸出結(jié)果僅保留小數(shù)點(diǎn)后4位(不需四捨五入)。 @程序 import java.awt.*

2、; 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

3、=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. 請(qǐng)編寫(xiě)一個(gè)Applet,其功能為:取一個(gè)小于10000的正隨機(jī)整數(shù),并輸出該數(shù)的平方根。要求這些功能在主類(lèi)的方法paint( ) 中實(shí)現(xiàn),并使輸出結(jié)果在四捨五入后保留小數(shù)點(diǎn)后4位。 @程序 import java.awt.*; import java

4、.applet.*; public class Applet1 extends Applet { public void paint(Graphics g) { int k; k=(int)(Math.random( )*1000); g.drawString(""+k+" 的平方根約等于 "+ (int)((Math.sqrt(k)+0.00005)*10000)/10000.0,20,20); } } 3. 編寫(xiě)一個(gè)Applet,其功能為:取一個(gè)50~200之間的正隨機(jī)整數(shù),如果該數(shù)為奇數(shù)則求它的平方根并轉(zhuǎn)換成float型數(shù)后再輸出;如

5、果該數(shù)為偶數(shù)則求它的平方并輸出。 @程序 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+"

6、 的平方等于 "+k*k,20,20); } } 4. 請(qǐng)編寫(xiě)一個(gè)Application,其功能為:取一個(gè)小于800的正隨機(jī)整數(shù),將其以如下形式輸出: 所取隨機(jī)數(shù)為:*** 它的百位數(shù)字為:* 它的十位數(shù)字為:* 它的個(gè)位數(shù)字為:* @程序 //import java.io.*; public class Class1 { public static void main (String[] args) { int x=(int)

7、(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(IOException e){ } } } 練習(xí)2(5) 掌握:(1)數(shù)組的定義、創(chuàng)建和初始化。 (2)方法的

8、定義和調(diào)用。 (3)方法的參數(shù)是數(shù)組、方法的返回值是數(shù)組的編程。 (4)方法的遞歸調(diào)用。 (5)在應(yīng)用程序中,接受并處理命令行參數(shù)。 1.請(qǐng)編寫(xiě)一個(gè)Applet,其中定義了兩個(gè)double類(lèi)型數(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類(lèi)型的數(shù)組,返回值為float類(lèi)型的數(shù)組,功能是將參數(shù)各元素的平方做為返回?cái)?shù)組的元素的值。請(qǐng)?jiān)诜椒╬aint()中分別以a和b為實(shí)在參數(shù)調(diào)

9、用方法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+1(i=0,1,2,3,......)的元素的值,在下標(biāo)為i的元素的值的正下方,其返回?cái)?shù)組的第一個(gè)元素的輸出坐標(biāo)為(20,40),行隔為20像素。 @程序 import java.awt.*; import java.applet.*; public class Applet1 extends Applet {

10、 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

11、i=0; i

12、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類(lèi)型的數(shù)組,返回值類(lèi)型為float型,功能是求參數(shù)各元素的平方根之和。請(qǐng)?jiān)谥鞣椒╩ain()中分別以a和b為實(shí)在參數(shù)調(diào)用方法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

13、,5.4,4.3}; public static void main (String[] args) { System.out.println("數(shù)組a各元素的平方根之和為:"+sqrt_sum(a)); System.out.println("數(shù)組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(in

14、t i=0; i

15、 main (String[] args) { System.out.println("用循環(huán)實(shí)現(xiàn)求 n! 的結(jié)果(n=4):"+f1(4)); System.out.println("用遞歸實(shí)現(xiàn)求 n! 的結(jié)果(n=4):"+f2(4)); //try{ char c=(char)System.in.read( );}catch(IOException e){ } } static long f1(int n) { long k=1; for(int i=1;i<=n;i++) k*=i; return k;

16、 } static long f2(int n) { if(n==1) return 1; else return n*f2(n-1); } } 4. 請(qǐng)編寫(xiě)一個(gè)Application實(shí)現(xiàn)如下功能:接受命令行中給出的三個(gè)參數(shù)x1、x2和op,其中x1和x2為float型數(shù),op是某個(gè)算數(shù)運(yùn)算符(+、 —、*、/ 之一),請(qǐng)以如下形式輸出 x1 和x2執(zhí)行 op 運(yùn)算后的結(jié)果(假設(shè)x1的值為269,x2的值為18,op為運(yùn)算符—): 269 – 18=251 @程序 public class Class1 {

17、 public static void main (String[] args) { float x,y; char op; if(args.length >= 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)); bre

18、ak; 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("非法運(yùn)算符!"); } } else { System.out.println("命令行參數(shù)錯(cuò)!"); Sys

19、tem.exit(-1); } } } 5. 編寫(xiě)Application,主類(lèi)中包含以下兩個(gè)自定義方法: void printA( int[ ] array )和int[] myArray(int n)。方法printA(int[ ] array)的功能是把參數(shù)數(shù)組各元素在屏幕的一行中輸出。方法myArray(int n)的功能是生成元素值是50~100之間的隨機(jī)值的int型數(shù)組,數(shù)組元素的個(gè)數(shù)由參數(shù)n指定。在應(yīng)用程序的main( )方法中,用命令行傳入的整數(shù)作為myArray(int n) 方法調(diào)用時(shí)的實(shí)際參數(shù),生成一個(gè)整型數(shù)組,并調(diào)用方法printA( )輸出該數(shù)

20、組的所有元素。 @程序 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("缺命令行參數(shù)!"); System.exit(-1)

21、; } } 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;

22、 } } 練習(xí)3(3) 掌握: 方法的重載。 1. 請(qǐng)編寫(xiě)一個(gè)Applet,其主類(lèi)名為Applet1,其中包含兩個(gè)同名方法arrayMin( ),它們都只有一個(gè)參數(shù),其中一個(gè)arrayMin( )方法的參數(shù)為int型數(shù)組,返回值類(lèi)型為int型數(shù);另一個(gè)arrayMin( )方法的參數(shù)為double型數(shù)組,返回值類(lèi)型為double型數(shù);這兩個(gè)方法的功能均為返回參數(shù)數(shù)組元素的最小值。通過(guò)paint( )方法調(diào)用上述兩個(gè)同名方法arrayMin( ),求數(shù)組a (其元素的值依次為26,82,-3,65,18,9)和數(shù)組b (其元素的值依次為3.6,57.2,8.5,78.8) 的最小

23、元素的值并輸出。 @程序 import java.awt.*; 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("數(shù)組a 的最小元素的值為: "+ arrayMin(a),20,20); g.drawString("數(shù)組b 的最小元素的值為: "+ arra

24、yMin(b),20,40); } int arrayMin(int x[ ]) { int y=x[0]; for(int i=1; i< x.length; i++) if(y>x[i]) y=x[i]; return y; } double arrayMin(double x[ ]) { double y=x[0]; for(int i=1; i< x.length; i++) if(y>x[i]) y=x[i]; return y; } } 2. 請(qǐng)編寫(xiě)一個(gè)Application,其主類(lèi)名為Cl

25、ass1,其中包含三個(gè)同名方法mySqrt(),它們都只有一個(gè)參數(shù),參數(shù)的類(lèi)型分別為int型、float型和double型,它們的功能均為返回參數(shù)的平方根,返回值的類(lèi)型與參數(shù)的類(lèi)型相同。在主方法main( ) 中調(diào)用上面的三個(gè)方法,這三個(gè)方法的參數(shù)均來(lái)自命令行參數(shù),最后將計(jì)算結(jié)果輸出在屏幕上。 @程序 public class Class1 { static int n; public static void main (String[] args) { if(args.length >= 3) { int n; float f; doub

26、le 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 {

27、System.out.println("缺命令行參數(shù)!"); 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); } } 3. 請(qǐng)編寫(xiě)一個(gè)Applet,其主類(lèi)名為Applet1,其中包含三

28、個(gè)同名方法addM(int x, byte y)、addM(float x,double y)、addM(double x,double y),它們的功能均為求兩個(gè)參數(shù)之和,返回值類(lèi)型與第一個(gè)參數(shù)的類(lèi)型相同。在主類(lèi)Applet1中,通過(guò)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)。 @程序 import java.awt.*; import java.applet.*; public class Applet1

29、 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) {

30、 return x+y; } float addM(float x,double y) { return (float)(x+y); } double addM(double x,double y) { return x+y; } } 練習(xí)4(3) 掌握: (1) 類(lèi)的繼承。 (2) 在子類(lèi)中如何操作父類(lèi)中的私有屬性。 (3) 變量的作用域。 1. 請(qǐng)編寫(xiě)Applet,它由三個(gè)類(lèi)定義組成,類(lèi)名分別為A、B和Applet1:類(lèi)A中定義了一個(gè)類(lèi)型為float的屬性f和一個(gè)類(lèi)型為byte的私有屬

31、性k;類(lèi)A還定義了一個(gè)帶有一個(gè)參數(shù)的構(gòu)造函數(shù)(用于初始化f),和兩個(gè)公共方法setk( )和getk( ), 其中setk( ) 的功能為給私有屬性k賦值,getk( )的功能為返回私有屬性k的值。類(lèi)B是類(lèi)A的子類(lèi),其中僅定義了一個(gè)類(lèi)型為boolean的屬性b和一個(gè)帶兩個(gè)參數(shù)的構(gòu)造函數(shù)(用來(lái)為父類(lèi)中的變量f和本類(lèi)的變量b做初始化)。主類(lèi)Applet1中定義了一個(gè)初值為123的int型變量n和一個(gè)B類(lèi)的對(duì)象x,請(qǐng)通過(guò)創(chuàng)建x為上述f和b賦值(f的值為68.963,b的值為true); 在paint()方法中, 給A類(lèi)的私有屬性k賦值66,然后顯示f,k,b,n的值。 @程序 import ja

32、va.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

33、(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. 請(qǐng)按如下要求定義兩個(gè)類(lèi)A和B, 類(lèi)A中定義一個(gè)double 類(lèi)型變量d(將其賦值為8.8)和一個(gè)方法int_d(double dd ),該方法的功能是返回參數(shù)dd的整數(shù)部分。類(lèi)B是類(lèi)A的子類(lèi),其中定義一個(gè)f

34、loat 類(lèi)型變量f(將其賦值為18.3)和一個(gè)方法int_f(float ff ),該方法的功能是返回參數(shù)ff的整數(shù)部分。編寫(xiě)一個(gè)Application,創(chuàng)建類(lèi)B的對(duì)象b,在主方法main( ) 中先顯示d和f的值,然后分別以d和f為實(shí)在參數(shù)調(diào)用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);

35、 System.out.println("d的整數(shù)部分="+b.int_d(b.d)+" f的整數(shù)部分="+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; int int_f(float ff){ return (int)ff; } } 3. 請(qǐng)編寫(xiě)一個(gè)Application ,在其主類(lèi)中定義一個(gè)int 類(lèi)型變量i ,并令其初值為1

36、23 ;主類(lèi)中還定義了 m1( )和m2( )等兩個(gè)方法。在主方法main( ) 和方法m1( )中也各定義一個(gè)int 類(lèi)型變量i ,它們的初值分別為456和789 ;方法m1( )的功能是輸出它的局部變量i的值;方法m2( )的功能是先輸出類(lèi)變量i 的值 ,然后使類(lèi)變量i 增加值 6后再次輸出其值 ;主方法main( ) 的功能是先輸出它的局部變量i的值,然后先后調(diào)用m1( )和m2( )實(shí)現(xiàn)它們的功能。 @程序 public class Class1 { static int i=123; public static void main (String[] args) {

37、 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("類(lèi)變量 i="+i); i+=6; System.out.println("加 6后的類(lèi)變量 i="+i); } } 練習(xí)5(5) 掌

38、握:(1)方法的參數(shù)為類(lèi)對(duì)象、方法的返回值為類(lèi)對(duì)象。 (2)方法覆蓋:在子類(lèi)中調(diào)用被子類(lèi)覆蓋了的父類(lèi)的同名方法。 (3)屬性隱藏:在子類(lèi)中訪(fǎng)問(wèn)被子類(lèi)隱藏了的父類(lèi)的同名屬性。 (4)構(gòu)造函數(shù)的重載。 1. 請(qǐng)編寫(xiě)一個(gè)Applet,它由兩個(gè)類(lèi)定義組成:類(lèi)A中定義了short型變量i和char型變量ch,及一個(gè)帶兩個(gè)參數(shù)的構(gòu)造函數(shù)(為變量i和ch做初始化)。主類(lèi)Applet1中創(chuàng)建了兩個(gè)A類(lèi)的對(duì)象x1(i的初始值為12,ch的初始值為’6’)和x2(i的初始值為62,ch的初始值為65),還定義了一個(gè)方法b,b的參數(shù)和返回值均為A類(lèi)的對(duì)象,功能為將參數(shù)對(duì)象的

39、屬性i加3,屬性ch也加3,使返回結(jié)果為另一個(gè)A類(lèi)的對(duì)象(即不破壞實(shí)在參數(shù)的值)。請(qǐng)?jiān)趐aint()方法中先輸出x1、x2的屬性值,然后再分別以x1、x2為實(shí)在參數(shù)調(diào)用方法b( ),并輸出調(diào)用結(jié)果,最后再次輸出x1、x2的屬性值。 @程序 import java.awt.*; import java.applet.*; public class Applet1 extends Applet { A x1,x2; public void init( ) { x1=new A((short)12,6); x2=new A((short)62,(char)65); }

40、 public void paint(Graphics g) { A a1=new A((short)0, ); A a2=new A((short)0, ); g.drawString("對(duì)象x1的屬性值: i=" + x 1.i+" ch="+ x 1.ch,20,20); g.drawString("對(duì)象x1的屬性值: i=" + x 2.i+" ch="+ x 2.ch,20,40); a1=b(x1); a2=b(x2); g.drawString("以x1為實(shí)參調(diào)用方法b( ) 生成的新的A類(lèi)

41、對(duì)象的屬性值: i=" +a1.i+" ch="+a1.ch,20,60); g.drawString("以x2為實(shí)參調(diào)用方法b( ) 生成的新的A類(lèi)對(duì)象的屬性值: i=" +a2.i+" ch="+a2.ch,20,80); g.drawString("調(diào)用后,對(duì)象x1的屬性值: i=" + x 1.i+" ch="+ x 1.ch,20,100);

42、 g.drawString("調(diào)用后,對(duì)象x1的屬性值: i=" + x 2.i+" ch="+ x 2.ch,20,120); } A b(A y) { A a=new A((short)0, ); a.i=(short)(y.i+3); a.ch=(char)(y.ch+3); return a; } } class A { short i; char ch; A(short i1,char c1){ i=i1; ch=c1; } } 2. 請(qǐng)按如下要求定義兩個(gè)類(lèi)A和B,

43、類(lèi)A中定義一個(gè)char類(lèi)型屬性x(將其賦值為65)和一個(gè)在小程序窗口中輸出x值的方法myPrint()。類(lèi)B是類(lèi)A的子類(lèi),其中定義一個(gè)int 類(lèi)型屬性y(將其賦值為16)和String類(lèi)型的屬性s(將其賦值為“java program!”); 類(lèi)B中 也定義了一個(gè)名為myPrint的方法,其功能為在小程序窗口中輸出y和s值;類(lèi)B中還有一個(gè)方法printAll( ),該方法中分別調(diào)用父類(lèi)和子類(lèi)的myPrint()方法做輸出。編寫(xiě)一個(gè)Applet,在主類(lèi)Applet1中創(chuàng)建類(lèi)B的對(duì)象b,調(diào)用printAll( )方法輸出對(duì)象b 的屬性值。 @程序 import java.awt.*; imp

44、ort java.applet.*; public class Applet1 extends Applet { B b=new B( ); public void paint(Graphics g) { b.printAll( g); } } class A { char x=65; void myPrint(Graphics g) { g.drawString("x="+x,20,20); } } class B extends A { int y=16; String s="java program!"; v

45、oid myPrint(Graphics g) { g.drawString("y="+y+" s="+s,20,40); } void printAll( Graphics g) { super.myPrint(g); myPrint(g); } } 3. 請(qǐng)按如下要求定義兩個(gè)類(lèi)A和B, 類(lèi)A中定義一個(gè)方法area(float r), 其返回值類(lèi)型為float型,該方法的功能是返回半徑為r的圓的面積(圓的面積公式為:pr2,其中 r是圓的半徑)。類(lèi)B是類(lèi)A的子類(lèi),其中也定義了一個(gè)名為area的方法area(float r),該方法的功能是返回半徑為r的

46、球的表面積(球的表面積的計(jì)算公式為:4πr2,其中r為球的半徑),返回值類(lèi)型也為float型;在類(lèi)B中還定義了另一個(gè)方法myPrint(float r),功能是分別調(diào)用父類(lèi)和子類(lèi)的方法area( )計(jì)算半徑相同的圓的面積和球的表面積并輸出調(diào)用結(jié)果。編寫(xiě)一個(gè)Application,創(chuàng)建類(lèi)B的對(duì)象b,在主方法main( )中調(diào)用myPrint(float r), 輸出半徑為1.2的圓的面積和半徑為1.2的球的表面積。 @程序 public class Class1 { public static void main (String[] args) { B b=ne

47、w B( ); b.myPrint(1.2f ); } } class A { float rear(float r) { return (float)Math.PI*r*r; } } class B extends A { float rear(float r) { return 4*(float)Math.PI*r*r; } void myPrint(float r) { System.out.println("半徑為 "+r+"的圓的面積="+super.rear(r)

48、 +" 同半徑的球的表面積="+rear(r)); } } 4. 請(qǐng)編寫(xiě)Applet,它由三個(gè)類(lèi)定義組成: 類(lèi)A中只定義了一個(gè)類(lèi)型為String的對(duì)象x和帶有一個(gè)參數(shù)的構(gòu)造函數(shù)(用來(lái)初始化x);類(lèi)B是類(lèi)A的子類(lèi),其中定義了一個(gè)int類(lèi)型的變量x和一個(gè)帶兩個(gè)參數(shù)的構(gòu)造函數(shù)(用來(lái)為父類(lèi)中的對(duì)象x和類(lèi)B中的變量x做初始化),還定義了一個(gè)方法myPrint( ),功能為輸出父類(lèi)A中的x和其子類(lèi)B 中的x的值;主類(lèi)Applet1中定義了B類(lèi)的對(duì)象b,請(qǐng)通過(guò)創(chuàng)建b為上述兩個(gè)x賦值(類(lèi)A中的x的值為“這是父類(lèi)的x.”, 類(lèi)B中的x的值為68),通過(guò)paint()方法在坐標(biāo)(20,30)處顯

49、示兩個(gè)x的值。 @程序 import java.awt.*; import java.applet.*; public class Applet1 extends Applet { B b=new B("這是父類(lèi)的x.",68 ); public void paint(Graphics g) { b.myPrint(g); } } class A { String x; A(String x1){ x=x1; } } class B extends A { int x; B(String x1,int x2){ super

50、(x1); x=x2; } void myPrint(Graphics g) { g.drawString("父類(lèi)A中x的值="+super.x+" 子類(lèi)B中x的值="+x,20,30); } } 5. 請(qǐng)編寫(xiě)Applet,它由三個(gè)類(lèi)定義組成, 類(lèi)名分別為A、B和Applet1:類(lèi)A中定義了類(lèi)型為int的變量i、類(lèi)型為float的變量f和類(lèi)型為char的變量ch;類(lèi)A還定義了三個(gè)構(gòu)造函數(shù),其中,第一個(gè)構(gòu)造函數(shù)帶有一個(gè)int類(lèi)型的參數(shù)(用于初始化i),第二個(gè)構(gòu)造函數(shù)帶有兩個(gè)參數(shù)(參數(shù)類(lèi)型分別為int和float,用于初始化i和f), 第三個(gè)構(gòu)造函數(shù)帶有三個(gè)參數(shù)(參

51、數(shù)類(lèi)型分別為int、float和char,用于初始化i、f和ch)。類(lèi)B是類(lèi)A的子類(lèi),其中僅定義了一個(gè)類(lèi)型為boolean的變量b和一個(gè)帶四個(gè)參數(shù)的構(gòu)造函數(shù)(用來(lái)為父類(lèi)中的變量i、f、ch和本類(lèi)的變量b做初始化)。主類(lèi)Applet1中定義了一個(gè)初值為32.6的double型變量d和一個(gè)B類(lèi)的對(duì)象b,請(qǐng)通過(guò)創(chuàng)建b為上述i、f、ch和b賦值(i的值為50,f的值為7.2,ch的值為’h’,b的值為true),用paint()方法在(10,30)位置處顯示i,f,ch,b,d的值。 @程序 import java.awt.*; import java.applet.*; public c

52、lass Applet1 extends Applet { double d=32.6; B b=new B(50,7.2f,h,true ); public void paint(Graphics g) { g.drawString("i="+b.i+" f="+b.f+" ch="+b.ch+" b="+b.b+" d="+d,10,30); } } class A { int i; float f; char ch; A(int x){ i=x; } A(int x,float y){ this(x);

53、 f=y; } A(int x,float y,char z){ this(x,y); ch=z; } } class B extends A { boolean b; B(int x,float y,char z,boolean w){ super(x,y,z); b=w; } } 練習(xí)6(5) 掌握:接口、抽象類(lèi)、最終類(lèi)的編程;字符串的使用。 1. 定義接口A,接口內(nèi)有兩個(gè)方法: method1(int x)和method2(int x,int y),它們的返回值類(lèi)型均為int。請(qǐng)編寫(xiě)一個(gè)Applet,并使其實(shí)現(xiàn)接口A:令方法metho

54、d1(int x)的功能是求5的x次方、方法method2(int x,int y) 的功能是求兩參數(shù)的最大值。在paint()方法中調(diào)用這兩個(gè)方法,顯示method1(2)和 method2(2,8)的結(jié)果。 @程序 import java.awt.*; import java.applet.*; public class Applet1 extends Applet implements A { public void paint(Graphics g) { g.drawString("調(diào)用method1(2)的結(jié)果: "+method1(2),20,20);

55、 g.drawString("調(diào)用method2(2,8)的結(jié)果: "+method2(2,8),20,40); } public int method1(int x) { int result=1; for(int i=1;i<=x;i++) result*=5; return result; } public int method2(int x,int y) { return x>y?x:y; } } interface A { public abstract int method1(int

56、x); public abstract int method2(int x,int y); } 2. 定義名為VolumeArea的抽象類(lèi),在其中定義圓周率p的值為3.14159,并定義兩個(gè)抽象方法volume(double r)和area(double r),它們的返回值類(lèi)型均為float。再定義以類(lèi)VolumeArea為父類(lèi)的子類(lèi)VolumeAndArea,在該子類(lèi)中實(shí)現(xiàn)父類(lèi)中的抽象方法:方法volume(double r) 的功能是求半徑為r的球的體積(公式為:4pr33);方法area(double r)的功能是求半徑為r的圓的面積(公式為:pr2)。請(qǐng)編寫(xiě)一

57、個(gè)Application ,在其主類(lèi)中定義一個(gè)VolumeAndArea類(lèi)的對(duì)象x,通過(guò)對(duì)象x求半徑為r(r的值由命令行給定)的球的體積及該球最大切面的圓的面積,并輸出計(jì)算結(jié)果。 @程序 public class Class1 { static VolumeAndArea x=new VolumeAndArea( ); public static void main(String[ ] args) { float r=Float.valueOf(args[0]).floatValue( ); System.out

58、.println("半徑為"+r+"的球的體積="+x.volume(r)); System.out.println("半徑為"+r+"的圓的面積="+ x.area(r)); } } abstract class VolumeArea { static final float myPI=3.14159f; public abstract float volume(double r); public abstract float area(double r); } class VolumeAndArea ext

59、ends VolumeArea { public float volume(double r) { return (float)(4*myPI*r*r*r/3); } public float area(double r) { return (float)(myPI*r*r); } } 3. 定義類(lèi)A,在其中定義一個(gè)final變量myPI,其類(lèi)型為float,值為3.1416;類(lèi)A中還定義一個(gè)final方法 m1(float r),該方法返回值類(lèi)型為float,功能是求半徑為r的圓的周長(zhǎng)(

60、公式為:2pr)。再定義類(lèi)A的子類(lèi)B,B為final類(lèi),其中定義一個(gè)返回值類(lèi)型為void的方法 m2(float r),功能是先調(diào)用父類(lèi)的方法m1( )求半徑為r的圓的周長(zhǎng)并輸出計(jì)算結(jié)果,然后輸出同一個(gè)圓的面積(公式為:pr2)。請(qǐng)編寫(xiě)一個(gè)Application ,利用類(lèi)B計(jì)算并輸出半徑為5的圓的周長(zhǎng)和面積。 @程序 public class Class1 { static B x=new B( ); public static void main(String[ ] args) { x.m2(5); } } cla

61、ss A { final float myPI=3.1416f; public final float m1(float r) { return 2*myPI*r; } } final class B extends A { public void m2(float r) { System.out.println("半徑為"+r+"的圓的周長(zhǎng)="+m1(r)); System.out.println("半徑為"+r+"的圓的面積="+myPI*r*r);

62、 } } 4.編寫(xiě)應(yīng)用程序,功能為:從命令行傳入一個(gè)包含十個(gè)字符的字符串,把該字符串與程序中給定的字符串"bacdbcabca"依次比較,統(tǒng)計(jì)兩個(gè)串中對(duì)應(yīng)字符相等的數(shù)目。然后輸出命令行輸入的字符串,并把兩個(gè)串中對(duì)應(yīng)字符不相等的字符替換為@后生成的新串輸出,最后輸出兩個(gè)串中相等字符的數(shù)目。 @程序 public class Class1 { public static void main(String args[]) throws IOException { if(args[0].length()<10) System.out.print("Enter a st

63、ring:include 10 chars"); else { String str=new String("bacdbcabca"); int n=0; System.out.print("The Standard answer:"); for (int x=0;x

64、 x=0;x

65、行中給出的一個(gè)字母串,先將該串原樣輸出,然后判斷該串的第一個(gè)字母是否為大寫(xiě),若是大寫(xiě)則統(tǒng)計(jì)該串中大寫(xiě)字母的個(gè)數(shù),并將所有大寫(xiě)字母輸出;否則輸出信息串”第一個(gè)字母不是大寫(xiě)字母!”。 @程序 public class Class1 { public static void main(String args[]) { int count=0; if(args.length!=0) { System.out.println(args[0]); if((int)args[0].charAt(0)>=65 && (int)args[0

66、].charAt(0)<=90) { for(int i=0;i=65 && (int)args[0].charAt(i)<=90) { System.out.print(args[0].charAt(i)); Count++; } System.out.println( ); System.out.println(“共有 ”+count+” 個(gè)大寫(xiě)字母?!?; } else System.out.println("第一個(gè)字母不是大寫(xiě)字母!"); } else System.out.println("請(qǐng)給出命令行參數(shù)!"); } } 練習(xí)7(5) 掌握:命令行傳參數(shù)。 1.請(qǐng)編寫(xiě)一個(gè)實(shí)現(xiàn)如下功能的Application:比較命令行中給出的兩個(gè)整

展開(kāi)閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話(huà):18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶(hù)上傳的文檔直接被用戶(hù)下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!