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]; }
}
static void printA(int[ ] x) {
for(int i=0; i< x.length; i++)
System.out.print(x[i]+\ \System.out.println( ); return;
a=myArray(n); printA(a);
{ System.out.println(\缺命令行参数!\ System.exit(-1); }
}
else
}
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 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 的最小元素的值为: \
g.drawString(\数组b 的最小元素的值为: \ }
int arrayMin(int x[ ]) { int y=x[0];
for(int i=1; i< x.length; i++) return y;
if(y>x[i]) y=x[i];
}
double arrayMin(double x[ ]) { }
double y=x[0];
for(int i=1; i< x.length; i++) return y;
if(y>x[i]) y=x[i];
}
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+\的平方根为: \System.out.println(f+\的平方根为: \System.out.println(d+\的平方根为: \
{ System.out.println(\缺命令行参数!\ System.exit(-1); }
} else
}
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(\
g.drawString(\
g.drawString(\ }
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 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(\ k=\ b=\ n=\ } }
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 { }
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(\ f=\
System.out.println(\的整数部分=\ f的整数部分=\boolean b;
B(float ff,boolean bb){ super(ff); b=bb; }
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. 请编写一个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(\中的 i=\ }
m1( ); m2( );
}
static void m1( ) {
int i=789;
System.out.println(\中的 i=\
}
static void m2( ) { }
System.out.println(\类变量 i=\
i+=6;
System.out.println(\加 6后的类变量 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,使返回结