第一部分
一、类和方法的定义和使用、接口的定义和实现、方法的重载和覆盖(共10题)
1.编写application,调用以下两个自定义两个方法:方法abc( )的参数为int类型,返回值为double型数组,功能为生成随机的double数组,数组元素值在10~20之间,数组元素个数从参数传入;方法printA()的参数double数组,功能为将参数数组在命令行分行打印输出。
public class Class1
{
public static void main (String[] args)
{
double d[];
d=abc(5);
printA(d);
}
static void printA(double[] array)
{
for(int i=0;i<array.length;i++)
{
System.out.println("\t"+array[i]);
}
}
static double[] abc(int n)
{
double[] data=new double[n];
for(int i=0;i<data.length;i++)
{
data[i]=10+10*Math.random();
}
return data;
}
}
2.请编写一个Applet,其中定义了一个double类型数组a[]={1.0,2.0,3.0,4.0,5.0},在Applet中定义一个方法square( ),该方法的参数和返回值均为double类型的数组,功能是将参数各元素的三次方做为返回数组的元素的值。利用paint()方法将square( )的返回值输出在屏幕上,要求输出在Applet的一行上,输出第一个元素的坐标为(20,20),其后的每个元素间隔40像素。
import java.awt.*;
import java.applet.*;
public class Applet1 extends Applet
{
public void paint(Graphics g)
{
double a[]={1.0,2.0,3.0,4.0,5.0};
double b[]=new double[a.length];
b=square(a);
for(int i=0; i< b.length; i++)
{ g.drawString(" "+b[i],20+i*40,20); }
}
double[ ] square(double x[])
{
double[] y=new double[x.length];
for(int i=0; i < x.length; i++)
y[i]=x[i]*x[i]*x[i];
return y;
}
}
3.请编写Applet,它由三个类定义组成;类A中只定义了一个类型为int的属性x和带有一个参数的构造函数(初始化x);类B是类A的子类,其中也仅定义了一个类型为float的属性y和一个带两个参数的构造函数(用来为父类中的变量x和本类的变量y做初始化);主类Applet1中定义了一个初值为'a'的字符型变量ch和一个B类的对象b,请通过创建b为上述x和y赋值(x的值为100,y的值为12.3),用paint()方法在(20,30)位置处显示x,y,ch的值。
import java.awt.*;
import java.applet.*;
public class Applet1 extends Applet
{
char ch='a';
B b=new B(100,12.3f);
public void paint(Graphics g)
{ g.drawString("x="+b.x+"\ty="+b.y+"\tch="+ch,20,30); }
}
class A
{
int x;
A(int x1)
{ x=x1;}
}
class B extends A
{
float y;
B(int x2,float y1)
{ super(x2); y=y1; }
}
4.请编写Applet,它由两个类定义组成:类A中定义了int型变量i和float型变量x,及一个带两个参数的构造函数(为变量i和x做初始化)。主类Applet1中创建了一个A类的对象a(i的初始值2,x的初始值8.0),还定义了一个方法b,b的参数和返回值均为A类的对象,功能为将参数对象的属性i加1,属性x加2。请用paint()方法在(20,30)位置处显示调用b(a)后的结果。
import java.awt.*;
import java.applet.*;
public class Applet1 extends Applet
{
A a=new A(2,8.0f), c;
A b(A a1)
{ a1.i++; a1.x+=2; return a1; }
public void init( )
{ c=b(a); }
public void paint(Graphics g)
{ g.drawString("i="+c.i+"\t"+"x="+c.x,20,30); }
}
class A
{
int i;
float x;
A(int j,float y)
{ i=j; x=y;; }
}
5.按如下要求定义两个类A和B, 类A中定义一个int 类型属性x(将其赋值为8)和一个在命令行下输出x值的方法myPrint()。类B是类A的子类,其中也定义一个int 类型属性y(将其赋值为16)和String类型的属性s(将其赋值为"java program!");一个在命令行下输出y和s值的方法myPrint();类B中还有一个方法printAll( ),该方法中分别调用父类和子类的myPrint()方法。编写Application,创建类类B的对象b,调用printAll( )方法,输出结果。
public class Class1
{
public static void main(String args[])
{
B b=new B();
b.printAll( );
}
}
class A
{
int x=8;
public void myPrint()
{ System.out.println( "x="+x ); }
}
class B extends A
{
int y=16;
String s="java programe!";
public void myPrint()
{
System.out.println("y="+y);
System.out.println("s="+s);
}
void printAll()
{
super.myPrint();
myPrint();
}
}
6.请编写一个Applet,其中包含三个同名方法area()。有一个参数的area(double r)方法用来求圆的面积(圆的面积公式: Math.PI*r*r, r是圆的半径),其返回值是double类型;有二个参数的area (double d,double h)方法用来求长方形的面积,其返回值是double类型;还有一个含二个整型参数的area (int d,int h)方法用来求三角形的面积,其返回值是double类型;在主类Applet1中的paint()方法中调用该三个方法,分别求半径为5.0的圆的面积,输出位置为(20,20);长、宽为5.0、5.0的长方形的面积,输出位置为(20,40);底、高为5、5的三角形的面积,输出位置为(20,60)。
import java.awt.*;
import java.applet.*;
public class Applet1 extends Applet
{
public void paint(Graphics g)
{
g.drawString("半径为5的圆的面积"+area(5.0),20,20);
g.drawString("长、宽为5、5的长方形的面积"+area(5.0,5.0),20,40);
g.drawString("底、高为5、5的三角形的面积"+area(5,5),20,60);
}
double area(double r)
{ return (Math.PI*r*r); }
double area(double d, double h)
{ return (d*h); }
double area(int d, int h)
{ return d*h/2.0; }
}
7.定义接口myItfc,接口内只有一个名为area的方法,该方法有两个double类型参数,返回类型为double。请编写一个Applet,其主类名为Applet1。在主类中定义一个标签L1,并实现接口myItfc,使接口中area方法的参数表示长方形的长、宽,功能是求长方形的面积。在Applet1中,调用area()方法,通过标签L1显示长宽为6.0、8.0的长方形的面积。
import java.awt.*;
import java.applet.*;
public class Applet1 extends Applet implements myItfc
{
Label L1;
public void init()
{
L1=new Label("所求长方形的面积:"+area(6.0,8.0));
add(L1);
}
public double area(double x,double y)
{ return x*y; }
}
interface myItfc
{ public abstract double area(double x,double y); }
8.定义接口myItfc,接口内有一个常量PI=3.14159;此外还定义了一个名为area方法,该方法有一个double类型参数,返回类型也为double。请编写一个Applet,其中有一个标签L1, 在Applet实现接口myItfc,接口中area方法参数表示立方体的边长(立方体是指长、宽、高均相等的长方体),功能是求立方体的体积。在Applet中,调用area()方法,通过标签L1显示边长为8.0的立方体的体积。
import java.awt.*;
import java.applet.*;
public class Applet1 extends Applet implements myItfc
{
Label L1;
public void init()
{
L1=new Label("所求立方体的体积:"+area(8.0));
add(L1);
}
public double area(double x)
{
return x*x*x;
}
}
interface myItfc
{ public abstract double area(double x); }
9.请编写Applet,它由三个类定义组成;类A中只定义了一个类型为double的属性x和带有一个参数的构造函数(初始化x);类B是类A的子类,其中也仅定义了一个类型为String的属性y和一个带两个参数的构造函数(用来为父类中的变量x和本类的变量y做初始化);主类Applet1中定义了一个初值为'd'的字符型变量ch和一个B类的对象b,请通过创建b为上述x和y赋值(x的值为3.0,y的值为"java programe."),用paint()方法在(20,30)位置处显示x,y,ch的值。
import java.awt.*;
import java.applet.*;
public class Applet1 extends Applet
{
char ch='z';
B b=new B(3.0,"java programe.");
public void paint(Graphics g)
{
g.drawString("x="+b.x+"\ty="+b.y+"\tch="+ch,20,30);
}
}
class A
{
double x;
A(double x1){ x=x1;}
}
class B extends A
{
String y;
B(double x2,String y1){ super(x2); y=y1; }
}
10. 请编写Application,它由三个类定义组成, 类名分别为A、B和Class1:类A中定义了一个类型为String的属性str和一个类型为int的私有属性n,n的初值为123456;类A还定义了一个带有一个参数的构造函数(用于初始化str),和一个返回值类型为int的公共方法getn( ), 功能为返回私有属性n的值。类B是类A的子类,其中仅定义了一个类型为float的属性x和一个带两个参数的构造函数(用来为父类中的变量str和本类的变量x做初始化)。主类Class1中定义了一个初值为true的boolean型变量bool和一个B类的对象