java程序设计期末复习题(2)

2018-11-27 16:43

15、在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为( C )。

A、隐藏 B、覆盖 C、重载 D、Java不支持此特性 16、A派生出子类B ,B派生出子类C,并且在Java源代码中有如下声明: 1. A a0=new A(); 2. A a1 =new B(); 3. A a2=new C();

问以下哪个说法是正确的? ( D ) A、只有第1行能通过编译

B、第1、2行能通过编译,但第3行编译出错

C、第1、2、3行能通过编译,但第2、3行运行时出错 D、第1行、第2行和第3行的声明都是正确的

17、假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?( C ) class A { int i; static String s; void method1() { } static void method2() { } }

A、System.out.println(a.i);B、a.method1(); C、A.method1(); D、A.method2() 18、已有Bird类的定义如下: package abcde;

public class Bird { protected static int referenceCount=0; public Bird(){referenceCount++;} protected void fly(){ }

static int getReCount(){return referenceCount;} }

有类Nightingale的定义如下,请写出它的输出结果 Before:0 After:2 。 package singers;

class Nightingale extends abcde.Bird { Nightingale( ) { referenceCount++;}

public static void main( String args[ ]){ System.out.print(“Before:”+referenceCount); Nightingale florence=new Nightingale( );

System.out.println(“ After:”+referenceCount); florence.fly( ); } }

19. 对象的主要属性是___________和____________。

20.编写一个完整的Java Application 程序,包括:①复数类Complex ②主类Test,将每组测试数据相加并显示结果,三组测试的复数为:1+2i和1-2i、1+2i 和3+4i 、1+2i和-1+2i 。 其中,复数类Complex必须满足如下要求: (1) 复数类Complex 的属性

realPart : int型,代表复数的实部。 imaginPart : int型,代表复数的虚部。 (2) 复数类Complex 的方法

Complex( ) : 构造函数,将复数的实部和虚部都置0。

Complex( int r , int i ) : 构造函数,将复数的实部初始化为r,将虚部初始化为i。 Complex complexAdd(Complex a) : 将当前复数对象与形参复数对象a相加,所得的结果仍是一个复数对象,返回给此方法的调用者。 public String toString( ) : 把当前复数对象的实部a、虚部b组合成 “a+bi” 的字符串形式;若实部为0,虚部不为0,则返回”bi”;若虚部为0,则返回”a”。

(注:程序框架和部分源码已给出,请补充完整)

import java.io.*; public class Test { public static void main(String args[]) { Complex a,b; a=new Complex(1,2); b=new Complex(1,-2); System.out.println((a.addComplex(b)).toString()); b=new Complex(3,4); System.out.println((a.addComplex(b)).toString()); b=new Complex(-1,2); System.out.println((a.addComplex(b)).toString()); } }

class Complex {

//添加属性定义 int realPart; int imaginPart;

//添加构造方法Complex() public Complex(){ realPart=0; imaginPart=0; }

//添加构造方法Complex(int r, int i) public Complex(int r,int i){ realPart=r; imaginPart=i; }

//添加复数相加方法 addComplex

public Complex addComplex(Complex a) { Complex b=new Complex(); b.realPart=a.realPart+this.realPart; b.imaginPart=a.imaginPart+this.imaginPart; return b; }

//添加toString方法

public String toString() { String slt=\ if(this.realPart!=0) {

if(this.imaginPart>0)

slt=String.valueOf(this.realPart)+\ else

slt=String.valueOf(this.realPart); }

if(this.imaginPart!=0)

slt=slt+String.valueOf(this.imaginPart)+\ return slt; } }

21、阅读下面的程序:

1) abstract class Base{

2) abstract public void myfunc(); 3) public void another(){

4) System.out.println(\5) } 6) }

7) public class Abs extends Base{

8) public static void main(String argv[]){ 9) Base b = new Abs(); 10) b.another();

11) }

12) public void myfunc(){

13) System.out.println(\14) }

15) public void another(){ 16) myfunc(); 17) } 18) }

以上程序经编译后,运行结果是什么?

22.什么是对象?什么是类?对象与类的关系是什么? 23.类的定义中包括那些基本信息?

24.定义一个类包括定义类头和定义_______两个部分。 25.类变量与实例变量的区别? 26.类方法与实例方法的区别? 27. 什么叫构造函数重载?

28.什么是方法,以及方法的作用? 29.Java中引入包的优点是什么?

30.如何将需要的外部类引入程序中?如何引用包中的某个类?如何引用整个包? 31.如何运行被打包后的字节码文件?

32、创建一个名为Rectangle的类来表示一个使用宽度和高度来改变量的矩形,矩形的宽度和高度由构造方法来确定。为Rectangle类创建下列方法:

? getArea返回矩形的面积,要求长和高的范围为0~50; ? getPerimeter返回矩形的周长;

? Draw使用星号(*)作为描绘字符画出该矩形(假设宽度和高度为整数); 在另一个类TestRectangle中编写main方法来测试Rectangle类。 33、编写一个程序,统计给定文件中每个字母出现的频率。

34、编写一个程序,统计给定文件中包含的单词数目,并按单词表的顺序显示统计结果。

第四章 继承和多态

1、欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的?( ) A、ArrayList myList=new Object(); B、ArrayList myList=new ArrayList(); C、ArrayList myList=new List(); D、List myList=new List();

2.在某个类A中存在一个方法:void GetSort(int x),以下能作为这个方法的重载的声明的是( )。 A)Void GetSort(float x) B)int GetSort(int y)

C)double GetSort(int x,int y) D)void Get(int x,int y) 3.为了区分重载多态中同名的不同方法,要求( )。

A) 采用不同的形式参数列表 B) 返回值类型不同 C) 调用时用类名或对象名做前缀 D) 参数名不同

4.下列选项中,用于在定义类头时声明父类名的关键字是( )。 A)return B) interface C) extends D) class

5、下列说法哪个是正确的? ( ) A)子类不能定义和父类同名同参数的方法 B)子类只能继承父类的方法,而不能重载

C)重载就是一个类中有多个同名但有不同形参和方法体的方法 D)子类只能覆盖父类的方法,而不能重载 6、关于类的继承以下说法错误的是( )。 A.在java中类只允许单一继承 B.在java中一个类可实现多个接口

C.在java中一个类可以同时继承一个类和实现一个接口 D.java允许多重继承

7. Java语言的类间的继承关系是( )。

A) 多重的 B) 单重的 C) 线程的 D) 不能继承 8. 为了区分重载多态中同名的不同方法,要求( )。 A)采用不同的形式参数列表 B) 返回值类型不同 C)调用时用类名或对象名做前缀 D) 参数名不同 9、阅读下面的程序(或程序片段),回答问题 。 现有类说明如下: class A { int x=10; int GetA(){return x;} }

class B extends A {

int x=100; int GetB(return x;} } 问题:

1)类A与类B是什么关系?

2)类B是否能继承类A的属性x?

3)若b是类B的对象,则b.GetA()的返回值是什么? 4)若b是类B的对象,则b.GetB()的返回值是什么? 5)类A和类B都定义了x属性,这种现象称为什么? 10、阅读下面的程序: public class test {

public static void main(String argv[]) {

Bird b = new Bird(); b.Fly(3); } }

class Bird {

static int Type = 2;

private void Fly(int an_Type) {

Type = an_Type;

System.out.println(\ } }

上面的程序编译是否成功?如果编译出错,指出哪行出错,并说明理由;如果编译正确,运行结果是什么?

11、阅读下面的程序:

abstract class Base{

abstract public void myfunc(); public void another(){

System.out.println(\ } }

public class Abs extends Base{

public static void main(String argv[]){ Base b = new Abs(); b.another(); }

public void myfunc(){

System.out.println(\ }

public void another(){ myfunc(); } }

以上程序经编译后,运行结果是什么?

12、写出以下程序的运行结果。 public class Test_2 { public static void main(String[ ] args) { System.out.println( fun(3, 4, 5) ); } static int fun(int x, int y, int z) { return fun( x, fun(y,z) ); } static int fun(int x,int y) { return x*y; } }

13.阅读以下程序,写出输出结果。 class First{

public First(){ aMethod(); } public void aMethod(){ System.out.println(“in First class”);} }

public class Second extends First{ public Second(){ aMethod(); } public void aMethod(){ System.out.println(“in Second class”);} public static void main(String[ ] args){ new Second( ); } }


java程序设计期末复习题(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:吉安市地方税务局支持全民创业的地方税收优惠政策和服务措施

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: