面向对象技术Java 期末复习试卷(三)汇总

期末复习试卷(三)

一、单项选择题

1、有一段java应用程序,其中包含一个公共类,名字为TestStudent,那么保存它的源文

件名是()

A. teststudent.java

B. teststudent .class

C. TestStudent.java

D. TestStudent.class

正确答案:C

解析:一个java文件中可以包含多个类,但最多只能有一个类是公共类(public),该java文件的名字要与公共类的一致。

2、关于下面的代码,哪个描述是正确的?

public class Test{

public static void main(String[] args{

Integer n1 = new Integer(3;

Object n2 = new Integer(4;

System.out.println(https://www.360docs.net/doc/6516445915.html,pareTo(n2;

}

}

A. 可以编译通过,可以运行,并得到预期结果。

B. 可以编译通过,可以运行,但不能得到预期结果。

C. 可以编译通过,但又运行错误。

D. 有编译错误。

正确答案:D

解析:Integer类是基本数据类型int的包装类,里面封装了一个int类型的值,提供了一些实用的方法(例如:在JavaFX中读取文本框内容是String类型的,如果要转换成int类型,就要调用Integer类的parseInt(方法)并实现了Comparable接口,在Comparable接口中定了抽象方法compareTo(T o, T是泛型,对于Integer类,T被替换为Integer,如下图:

因此,Integer类中compareTo(方法的定义如下:

因此,compareTo的参数只能是Integer类型的,所以代码中的下面语句中的n2的类型需要进行强制类型转换,由Object转为Integer:

System.out.println(https://www.360docs.net/doc/6516445915.html,pareTo(n2;

正确写法如下:

System.out.println(https://www.360docs.net/doc/6516445915.html,pareTo((Integer n2;

类似的包装类还有Long\Float\Double\Char\Boolean等,都是将基本数据类型包装为类。

3、下面哪种类型不是引用数据类型?()

A. 数组

B. char

C. String

D. Object

正确答案:B

解析:基本数据类型只是存放数据,不提供功能(即方法)包括4类八种:

布尔类型:boolean

字符类型:char

整数类型:byte, short, int, long

浮点类型:float,double

引用数据类型包括类、接口、抽象类、数组(本质上是类),引用类型可以提供功能。

注意:

String是一个类,所以可以使用String s = new String("bistu"的方式创建对象;

数组也是一个类,所以需要用new创建对象。

4、类Test要定义一个无参数、无返回值的方法method,并能够通过Test.method(的方式调用method方法,则method方法的定义形式为 ( 。

A. public static void method (

B. public void method (

C. public final void method (

D. public abstract void method (

正确答案:A

解析:静态方法(也叫类方法)可以不创建对象,而直接通过类名调用。

5、下列关于接口说法正确的是 ( 。

A. 抽象类中的方法不全都是抽象的,因此可以创建对象。

B. 接口的引用既可以调用实现类重写的接口的方法,也可以调用实现类新增的方法。

C. 接口的实现类可以实现接口的部分方法。

D. 接口的方法都是抽象的,因此不可以创建对象。

正确答案:D

解析:选项A的前半句是对的,后半句错了。

选项B前半句是对的,后半句不对。示例如下:

public interface GeometricObject{

public double getArea(;

}

public class Circle implements GeometricObject{

public double getArea({ .…. }

public double getPerimeter({ …… }

public TestCircle{

public static void main(String[] args{

GeometricObject c = new Circle(;

c.getArea(; //访问实现类覆盖接口的方法可以

c. getPerimeter( //错误:不可以访问实现类新增的方法

}

}

选项C错误,实现类必须实现接口的所有的抽象的方法。

6、将类的成员方法的访问权限设置为默认的,则该成员方法能被( 。

A. 同一包中的类访问

B. 其他包中的类访问

C. 所有的类访问

D. 所有的类的子类访问

正确答案:A

解析:注意本题可以继续扩展,例如把访问权限换成public/private/protected。

7、下列哪个是Java应用程序主类中正确的main方法声明? (

A. public void main(String[] args

B. static void main(String[] ar

C. public static void Main(String a[]

D. public static void main(String args[]

正确答案:D

8、有一段java应用程序,其中包含一个公共类,名字为Cat,那么保存它的源文件名是()

A. Cat.java

B. Cat.class

C. Cat

D. 都对

正确答案:A

与第1个选择题类似。

9、下列哪个是JDK提供的编译器?()

A. java.exe

B. javac.exe

C. javap.exe

D. javaw.exe

正确答案:B

10、某个源文件如下:public class TestPerson{}class Person{}class Student extends Person{}那么保存它的源文件名是()

A. TestPerson.java

B. Person.java

C. Student.java

D. TestPerson.class

正确答案:A

参考第1、8题。

11、以下定义一位数组的语句中,正确的是()

A. int a[5];

B. int a[] =new [5];

C. int a[];

int a = new int[5];

D. int a[] = {1,2,3,4,5};

正确答案:D

选项A: java中的数组是类,需要使用new关键字创建。

选项B:落类型了,正确写法为 int a[] = new int[5];

选项C:重复定义变量a,正确写法: int a[];

a = new int[5];

12、String类实现Comparable接口,覆盖其中的compareTo(方法。下面哪个是正确的String类中被重写的compareTo(方法的方法头?

A. public int compareTo(String o

B. public void compareTo(String o

C. public int compareTo(Object o

D. public void compareTo(Object o

正确答案:A

解析:Comparable接口的定义如下:

接口的实现类必须覆盖在接口中定义的抽象的方法,覆盖就意味在实现类中的方法要与在接口中定义的抽象方法同名、同参、同返回值。

13、将类的某个成员方法的访问权限设置为protected的,则下面说法正确的是()。

A. 同一包中的其他类不可以访问该方法

B. 不同包中的子类可以访问该方法

C. 所有包中的类都可以访问该方法

D. 所有包中的类都不可以访问该方法。

正确答案:B

14、下列哪一个类声明是错误的?(

A. class A

B. public class A

C. protected class A

D. public abstract class A

正确答案:C

解析:类只能被默认或者public修饰符修饰,这是与成员变量和成员方法不一样的地方。

15、下面关于数组和集合的说法,哪一个是错误的?()

A. 数组的长度一旦确定,不能修改;

B. 集合的长度可变,但是效率比数组低;

C. 数组和集合都属于引用类型;

D. 数组使用泛型指明所存储的对象的类型。

正确答案:D

解析:ArrayList是集合的一种类型。集合使用泛型指明所存储的对象的类型。

16、下面代码有错误的行是:________。

1: public class Review1307{

2: public static void main(String[] args{

3: Number x = new Integer(3;

4: System.out.println(x.intValue(;

5: System.out.println(https://www.360docs.net/doc/6516445915.html,pareTo(new Integer(4;

6: }

7: }

A. line 2

B. line 3

C. line 4

D. line 5

正确答案:D

解析:

(1)查JDK帮助文档,Number是Integer的父类,Number没有实现Comparable接口,而子类Integer实现了Comparable接口,即子类Integer新增了compareTo(方法。

(2)x的声明类型是Number,实际类型是Integer,根据父类引用不能调用子类新增的方法的原则,x不可以直接调用compareTo(方法。

(3)如果需要修改代码中的错误,可以进行强制类型转换,如下:

System.out.println(((https://www.360docs.net/doc/6516445915.html,pareTo(new Integer(4;

17、inta[] = {1,4,7,2,5,6,0},该数组第1个和最后1个元素的下标为哪一项? (

A. 0,7

B. 1,6

C. 0,6

D. 1,7

正确答案:C

18、假设arr是一个int类型的二维数组,下面关于arr的声明和初始化,哪一项是错误

的?(

A. int[][] arr = {{1,2},{3,4,5}};

B. int[][] arr = new int[2][3];

C. int[][] arr = new int[2][];

D. int[][] arr = new int[][3];

正确答案:D

解析:Java的二维数组是由一维数组模拟的,示例如下:

没有第一维,就不会有第二维,所以,创建数组的时候,不能只指明第二维,不指明第一维。但可以仅指明第一维,不指明第二维,如选项C。

19、下面说法哪一个是错误的?()

A. 构造方法的名称与类名一样。

B. 构造方法返回值可以为void。

C. 一个类可以有多个构造方法。

D. 在一个类中可以使用this调用该类的其他构造方法。

正确答案:B

解析:构造方法的作用是创建对象,因此,本质上,构造方法是有返回值的,其返回值就是它创建的对象。但是,由于即使不指明构造方法的返回值,JDK也知道其返回值类型,因此,构造方法的返回值类型省略掉了。但是绝对不能用void,void表示没有返回值。

20、下面关于接口的定义哪个是正确的?

A. interface A{

void print( { };

}

B. abstract interface A extends I1,I2{

abstract void print({};

}

C. abstract interface A{

print(;

}

D. interface A{

void print(;

}

正确答案:D

解析:(1)interface前面没有abstract修饰;

(2)接口中的方法都是抽象的,因此不能有方法体,即{}。

21、下面关于多态的说法,正确的是()。

A. 一个类中不能有同名的方法;

B. 子类中不能有和父类中同名的方法;

C. 子类中可以有和父类中名字相同,且参数相同的方法;

D. 多态性就是方法的名字和参数可以一样,但返回值的类型必须不一样。

正确答案:C

22、用于定义类成员的访问控制权的一组关键字是()

A. class, float, double, public

B. float, boolean, int, long

C. char, extends, float, double

D. public, private, protected

正确答案:D

23、下面关于接口的说法哪一条是错误的?()

A. 接口是一种特殊的抽象类,接口的方法都是抽象方法;

B. 类可以实现接口;

C. 接口和子接口可以有自己的实例对象;

D. 可以使用接口声明引用,引用实现本接口或子接口的类的对象。

正确答案:C

解析:接口中的方法都是抽象的,不能创建实例;类似的,抽象类也不可以创建实例。

24、下面关于抽象类的说法,哪一条是错误的?()

A. 抽象类可以不包含抽象方法;

B. 一个类只要有一个抽象方法,就是抽象类;

C. 抽象类不能创建对象,创建对象的工作由抽象类的具体子类来实现;

D. 对于抽象类中的抽象方法来说,在抽象类中既要指定方法名和参数,又要指定实现代码。

正确答案:D

解析:抽象方法没有方法体,因此不可能有实现代码。

25、Java源程序经过编译后得到的类文件的扩展名是哪一个项?()

A. java

B. exe

C. class

D. html

正确答案:C

26、Worker类是Person类的子类,Worker的构造方法中有一句super(,该语句是()。

A. 调用Person类中定义的super(方法

B. 语法错误

C. 调用Person类的构造方法

D. 调用Worker类中定义的super(方法

正确答案:C

27、关于覆盖和重载,下面说法哪一个是错误的?()

A. 一个类中包含多个同名但参数不同的方法,这些方法构成了重载。

B. 普通的成员方法可以重载,但构造方法不可以重载。

C. 如果在子类中定义的方法与其父类的某个方法具有相同的名称、参数和返回值,则称子类的方法覆盖了父类的方法。

D. 当父类的方法不能满足子类的要求时,子类可覆盖父类的方法;当一种功能有多种实现时,可使用重载来提供多个同名不同参的方法。

正确答案:B

解析:构造方法也可以重载,即一个类可以有多个构造方法。

28、下面的代码说明类A和类B之间是什么关系?()

class A{ }

class B extends A { }

A. 关联

B. 继承

C. 依赖

D. 实现

正确答案:B

29、下面代码的错误出现在________。

1: public class Review1308{

2: public static void main(String[] args{

3: Number x = new Integer(3;

4: System.out.println(x.intValue(;

5: System.out.println((https://www.360docs.net/doc/6516445915.html,pareTo(new Integer(4;

6: }

7: }

A. line 2

B. line 3

C. line 4

D. line 5

正确答案:D

30、下列关于继承的概念,哪项叙述是正确的?()

A. 在java中,允许一个类继承多个父类;

B. 在java中,一个类只能实现一个接口;

C. 在java中,一个类不能同时继承一个类和实现一个接口;

D. java的单一继承使代码更可靠。

正确答案:D

解析:Java采用单继承,即只能有一个父类,但可以实现多个接口。

二、程序题

1、GeometricObject是几何图形抽象类,Circle类继承了GeometricObject类,同时实现了

Comparable接口,三者的UML类图如下:提示:Comparable接口在https://www.360docs.net/doc/6516445915.html,ng 包中已经定义,不需要自己写。

解题要求:编写测试类,要求如下:

(1)创建Circle类的对象c1和c2,设定c1的半径为5,c2的半径为6。

(2)输出c1和c2的半径;c1的周长和面积;调用c1的compareTo(Circle o 方法与c2比较,输出比较结果。

(3)将c1的半径改为8,按照(2)中的要求输出信息。

(4)将c1的半径改为6,按照(2)中的要求输出信息。样例如下

package qiZhongKaoShi2;

public class TestCircleComparable {

public static void main(String[] args{

Circle c1 = new Circle(5;

Circle c2 = new Circle(6;

System.out.println("c1的半径是" + c1.getR(;

System.out.println("c2的半径是" + c2.getR(;

System.out.println("c1的周长是" + c1.getPerimeter(;

System.out.println("c1的面积是" + c1.getArea(;

if (https://www.360docs.net/doc/6516445915.html,pareTo(c2==1

System.out.println("c1比c2大";

else if (https://www.360docs.net/doc/6516445915.html,pareTo(c2==-1

System.out.println("c1比c2小";

else

System.out.println("c1与c2相等";

System.out.println(;

c1 = new Circle(8;

System.out.println("c1的半径是" + c1.getR(; System.out.println("c2的半径是" + c2.getR(; System.out.println("c1的周长是" + c1.getPerimeter(; System.out.println("c1的面积是" + c1.getArea(;

if (https://www.360docs.net/doc/6516445915.html,pareTo(c2==1

System.out.println("c1比c2大";

else if (https://www.360docs.net/doc/6516445915.html,pareTo(c2==-1

System.out.println("c1比c2小";

else

System.out.println("c1与c2相等";

System.out.println(;

c1 = new Circle(6;

System.out.println("c1的半径是" + c1.getR(; System.out.println("c2的半径是" + c2.getR(; System.out.println("c1的周长是" + c1.getPerimeter(; System.out.println("c1的面积是" + c1.getArea(;

if (https://www.360docs.net/doc/6516445915.html,pareTo(c2==1

System.out.println("c1比c2大";

else if (https://www.360docs.net/doc/6516445915.html,pareTo(c2==-1

System.out.println("c1比c2小";

else

System.out.println("c1与c2相等";

}

}

abstract class GeometricObject{

public abstract double getArea(;

public abstract double getPerimeter(;

}

class Circle extends GeometricObject implements Comparable { private double r;

public Circle({}

public Circle(double r{

this.r = r;

}

public double getR( {

return r;

}

public void setR(double r {

this.r = r;

}

@Override

public double getArea( { return Math.PI * r * r;

}

@Override

public double getPerimeter( { return 2 * Math.PI * r;

}

@Override

public int compareTo(Circle o { if (r > o.getR(

return 1;

else if ( r < o.getR(

return -1;

else

return 0;

}

}

第4章-Java语言与面向对象作业习题与答案

第4章 Java语言与面向对象作业习题与答案 一、简答题 1.什么是对象?什么是类? 对象是一种抽象数据类型。它包含了事物的静态特征(属性)和动态特征(行为)两大特征。 类是一组同种对象的集合与抽象。即是具有相同属性和方法的一组对象集合。 2.Java语言的单继承是指什么? 一个类可以派生出多个子类,但子类只允许有一个父类,而不允许存在多个父类。 3.在一个共有类中的数据成员及方法成员的访问控制符为缺省,则这个类可供什么样的包引用? 当一个类的访问控制符为public共有时,表明这个类作为整体对其它类是可见和可引用的;但其数据成员和方法成员访问控制符为缺省时,它们只能被包中类(含当前类)引用。 4.抽象类的用途 (1)设计在更高的层次上进行,不考虑具体对象,从而大大简化了处理问题的复杂性; (2)设计出的类也具有更加良好的可扩展性。 5.什么是非静态的成员变量? 非静态成员即为实例成员变量(没有加static修饰的变量)。 6.异常Exception和错误Error有什么不同?Java如何处理它们? 答:错误通常是指程序本身存在非法情形,常常是因为代码存在问题而引起的,如造成系统崩溃、虚拟机粗错、动态失败等,这一类错误无法恢复或不可能捕获,并将导致应用程序中断。 异常表示另外一种“非同寻常”的错误。这种错误通常是不可预测,但可以被捕获且可以恢复。常见的异常情况包括存不足、找不到所需文件等。 对于错误,编程人员可以通过对程序进行更仔细的检查,以避免这种错误。 对于异常,可以使用捕获机制进行捕获,再编写出相应的处理程序。 7.简单述Java的异常处理机制。 答:Java采取“抛出—捕获”的方式,一旦一个异常想象产生,Runnable环境和应用程序会抛出各种标准类型和自己定义的异常,系统就可以捕获这些异常,并一定有相应的机制来处理它,确保不会产生司机、死循环或其它对操作系统的损害,从而保证了整个程序运行的安全性。 8.简单述throw语句和throws关键字之间的差别。 答:throw语句是在一个方法中用来直接抛出异常对象,其格式是: throw 异常对象; throws关键字是用一个方法声明首部,用来指出这个方法中可能产生若干种异常,其格式:[方法修饰符] 返回类型方法名(参数表)throws 异常类型表 { /*方法体*/ } 二、填空题 1.所有Java应用程序都必须包含的一个类方法是 main() 。 2.面向对象程序设计语言的三种重要特性是封装性、继承性和多态性。

实验一 Java面向对象基础 实验报告

实验一Java面向对象基础、数组实验报告 一、实验目的 1. 理解面向对象编程基本思想 2. 了解类的封装方法,以及如何创建类和对象 3. 掌握面向对象程序设计的方法,了解类的继承性和多态性的作用 4. 掌握Java 中的数组定义、引用 二、实验要求 编写程序时要注意体现面向对象思想,体会不同访问控制符的作用。 1. 编写一个Vehicle类和它的二个子类Bus类和Boat类。(要求:程序要有构造方法重载;要能体现类的多态性) 2. 定义一个由若干个整数组成的数组,要求输出该数组的平均值以及所有的奇数之和。 3. 随机生成30个0-9之间的数字,分别统计0-9这10个数字分别出现了多少次。 三、实验内容及结果 1. 编写一个Vehicle类和它的二个子类Bus类和Boat类。 public class Vehicle { private String color; public Vehicle() { this("black"); } public Vehicle(String color) { this.color = color; } public String toString() { return "this is a " + this.color + " vehicle"; } } class Bus extends Vehicle { private int passagerNumber; public Bus() { this(50, "black"); } public Bus(int number) { this(number, "black"); } public Bus(int number, String color) { super(color); this.passagerNumber = number; } public String toString() {

最新JAVA语言与面向对象程序设计课后习题答案

1 第1章面向对象软件开发概述 2 1.简述面向过程问题求解和面向对象问题求解的异同。试列举出面向对象和面向3 过程的编程语言各两种。 4 答:面向过程问题求解,以具体的解题过程为研究和实现的主体,其思维特点更5 接近于计算机;面向对象的问题求解,则是以“对象”为主体,“对象”是现实世6 界的实体或概念在计算机逻辑中的抽象表示,更接近于人的思维特点。 7 面向过程的编程语言:C,Pascal, Foratn。 8 面向对象的编程语言:C++, Java,C#。 9 2.简述对象、类和实体及它们之间的相互关系。尝试从日常接触到的人或物中抽10 象出对象的概念。 11 答:面向对象技术中的对象就是现实世界中某个具体的物理实体在计算机逻辑中12 的映射和体现。类是同种对象的集合与抽象。类是一种抽象的数据类型,它是所有13 具有一定共性的对象的抽象,而属于类的某一个对象则被称为是类的一个实例,是14 类的一次实例化的结果。如果类是抽象的概念,如“电视机”,那么对象就是某一15 个具体的电视机,如“我家那台电视机”。 16 3.对象有哪些属性?什么是状态?什么是行为?二者之间有何关系?设有对象“学17 生”,试为这个对象设计状态与行为。 18

答:对象都具有状态和行为。 19 对象的状态又称为对象的静态属性,主要指对象内部所包含的各种信息,也就是20 变量。每个对象个体都具有自己专有的内部变量,这些变量的值标明了对象所处的21 状态。 22 行为又称为对象的操作,它主要表述对象的动态属性,操作的作用是设置或改变23 对象的状态。 24 学生的状态:姓名、性别、年龄、所在学校、所在系别、通讯地址、电话号码、25 入学成绩等; 26 学生的行为:自我介绍、入学注册、选课、参加比赛等。 27 4.对象间有哪三种关系?对象“班级”与对象“学生”是什么关系?对象“学生” 28 与对象“大学生”是什么关系? 29 答:对象间可能存在的关系有三种:包含、继承和关联。 30 对象“班级”与对象“学生”是包含关系。 31 对象“学生”与对象“大学生”是继承关系。 32 5.有人说“父母”和“子女”之间是继承的关系。这种说法是否正确?为什么? 33 答:“父母”和“子女”之间不是面向对象意义上的“继承”关系。因为这里的34

2.Java面向对象知识测试(答案版)解析

面向对象部分测试题 考试宣言: 同学们, 考试考多少分不是我们的目的! 排在班级多少的名次也不是我们的初衷! 我们考试的目的是要通过考试中的题目,检查大家在这段时间的学习中,是否已经把需要掌握的知识掌握住了,如果哪道题目你不会做,又或者做错了, 那么不用怕, 考完试后, 导师讲解的时候你要注意听! 那时候学会了, 记住了, 也一样不影响你高薪就业! 本套题共40道不定项选择题,其中单选30道,多选10道。单选2分/题,多选4分/题。多选题不全对半分,全对满分。 1.下面描述函数重写错误的是(c) A. 要有子类继承或实现 B. 子类方法的权限必须大于等于父类的权限 C. 父类中被private权限修饰的方法可以被子类重写 D. 子类重写接口中的抽象方法,子类的方法权限必须是public的 2.下列说法哪个正确?(a b c) A. 一个程序可以包含多个源文件 B. 一个源文件中只能有一个公共类 C. 一个源文件中可以有多个类 D. 一个源文件只能供一个程序使用

3.下面关于类的设计思路描述错误的是 ( b c ) A. 根据需求写出类所包含的字段(成员变量) B. 根据面向对象的思想要求,所有的字段都必须私有化 C. 封装之后的字段在本类内也必须使用get/set方法 D. 按需求可添加若干构造方法 4.关于封装下面介绍错误的是(d )。 A. 封装将变化隔离 B. 封装提高重用性。 C. 封装提高安全性 D. 只有被private修饰才叫做封装 5.试图编译运行下面的代码会发生什么情况 (d) public class MyClass{ static int i; public static void main(String[] args){ System.out.println(i); } } A. 错误,变量i没有被初始化 B. 输出null C. 输出1 D. 输出0 6.下面对static的描述错误的是 b A. 静态修饰的成员变量和成员方法随着类的加载而加载 B. 静态修饰的成员方法可以访问非静态成员变量 C. 静态修饰的成员可以被整个类对象所共享

JAVA面向对象基础测试题

读书破万卷下笔如有神 JAVA面向对象基础测试题 提示:本题为第一阶段,JAVA面向对象基础部分练习题,包括对象,类,继承,封装,多态,接口,内部类等等,java核心基础,适合初学者对面向对象基础的知识进行测试,以便查漏补缺。 1. 程序执行的结果是:()。 01 public class Point{ 02 int y = 7; 03 public void step(int y) { 04 y += y; 05 System.out.println(y); 06 读书破万卷下笔如有神 } 07 public static void main(String[] args) {

08 Point p = new Point(); 09 p.step(10); 10 } 11 } A.14 B.20 C.10 D.17 正确答案:B解析: 2. 读书破万卷下笔如有神 程序的执行结果是:()。 01 public class Question { 02 private int num; 03 public static void main(String [] args){ 04

Question q = new Question(); 05 q.num=13; 06 update(q); 07 System.out.println(q.num); 08 } 读书破万卷下笔如有神 09 public static void update(Question q){ 10 q.num=9; 11 } 12 } A.13 B.9 C.0 D.4

正确答案:B解析: 3. 程序执行的结果是:()。 01 public class Answer { 读书破万卷下笔如有神 02 public static void main(String[] args) { 03 int score = 20; 04 Answer ans= new Answer(); 05 ans.add(score); 06 System.out.println( main:score = + score); 07 } 08 void add(int score) { 09 System.out.println( add:score= + score++); 10

Java面向对象程序设计_习题解答

Java面向对象程序设计 清华大学出版社 (编著耿祥义张跃平) 习题解答 建议使用文档结构图 (选择Word菜单→视图→文档结构图)

习题1 1.James Gosling 2. (1)使用一个文本编辑器编写源文件。 (2)使用Java编译器(javac.exe)编译Java源程序,得到字节码文件。 (3)使用J ava解释器(java.exe)运行Java程序 3.Java的源文件是由若干个书写形式互相独立的类组成的。 应用程序中可以没有public类,若有的话至多可以有一个public类。 4.系统环境path D\jdk\bin; 系统环境classpath D\jdk\jre\lib\rt.jar;.; 5. B 6.Java源文件的扩展名是.java。Java字节码的扩展名是.class。 7.D 8.(1)Speak.java (2)生成两个字节码文件,这些字节码文件的名字Speak.class 和Xiti8.class (3)java Xiti8 (4)执行java Speak的错误提示 Exception in thread "main" https://www.360docs.net/doc/6516445915.html,ng.NoSuchMethodError: main 执行java xiti8得到的错误提示 Exception in thread "main" https://www.360docs.net/doc/6516445915.html,ng.NoClassDefFoundError: xiti8 (wrong name: Xiti8) 执行java Xiti8.class得到的错误提示 Exception in thread "main" https://www.360docs.net/doc/6516445915.html,ng.NoClassDefFoundError: Xiti8/class 执行java Xiti8得到的输出结果 I'm glad to meet you 9.属于操作题,解答略。

实验三Java面向对象高级编程

实验三Java面向对象高级编程 一、实验目的 1. 掌握Java 面向对象编程技术 2. 能够使用继承创建子类并实现方法覆盖 3. 能够创建异类集合并使用多态 4. 能够创建抽象类和接口,并探究它们的多态特性 二、预备知识 1. JDK的安装设置:JDK/JRE/JVM; 2. Eclipse集成开发环境的绿色安装; 3. 掌握Java语言的面向对象特性(封装性、继承性、多态性); 4. 掌握Java语言的抽象类和接口。 三、实验描述 1. 实验类型:设计 2. 实验学时:4学时 3. 实验容:2项(参照四) 四、实验容 (1) 检查所使用的计算机系统: 1. 确认是否已安装JDK,并确认系统的环境变量设置; 2. 确认是否已绿色安装Eclipse集成开发环境。 (2) 实验容一:使用继承和方法覆盖创建子类,并能够创建异类集合并使用多态 具体要求: 1. 在上述银行项目中,创建Customer类: ·位于包:.mybank.domain中; ·向Customer类添加四个实例变量:firstName,lastName,accounts(Account 对象数组,长度为10)和numberOfAccounts(记录accounts数组索引的一个整数); ·添加一个公有构造方法:两个形式参数firstName,lastname,用于初始化客户、创建accounts数组和初始化accounts数组元素个数numberOfAccounts; ·添加getFirstName方法:该方法返回客户的firstName实例变量; ·添加getLastName方法:该方法返回客户的lastName实例变量; ·添加addAccount方法:该方法有一个形式参数(即Account对象),数组的下标通过实例变量numberOfAccounts实现递增,同时将该参数对象存储在accounts 数组中; ·添加getNumberOfAccounts方法:该方法返回numberOfAccounts实例变量; ·添加getAccount方法:该方法返回与指定的index数组下标相关的对象。 2. 创建SavingsAccount类,该类是Account类的子类: ·位于包:.mybank.domain中; ·向SavingsAccount类中添加interestRate实例变量; ·添加一个有两个参数的公有构造方法:initBalance和interestRate。调用父类构造

java面向对象考试题-练习版

JAVA面向对象结课考试题 班级_______ 姓名________得分___________ 1下列程序编译或运行的结果是。() public static void main(String args[]){ int a = 10, b,c; if(a>50){ b=9; } c = b + a; System.out.println(c); } A.10 B. 19 C.9 D.编译错误 2、已知’1’的ascii码值为31下列语句片段中,four 的值为( ) int three = 3; char one = ‘1’; char four = (char)(three+one); A. 3 B. 1 C. 31 D. 4 3、下列代码的运行结果是( ) public static void main(String[] args){ int a = 7; System.out.println(a%3); } A 6 B 2 C 5 D 1 4、以下程序的输出结果为( )。 public static void main(String[]args) { int x = 1, y = 1, z =1; if(x--==1&&y--==1||z--==1) System.out.println(“x=” +x+”,y=” +y+”,z=” +z); } A x=0, y=1,z=1 B x=0,y=2,z=2 C x=0,y=2,z=1 D x=0,y=0,z=1 5、下列代码段编译和运行的结果是() public static void main(String args[]){ String str = “null”; if(str==null){ System.out.println(“null”); }else if(str.length()==0){ System.out.println(“zero”); }else { System.out.println(“some”); } } A null B zero C some D 编译错误6、下列代码的运行结果是(): public class Animal{ public String noise(){ return “peep”; } public static void main(String[] args){ Animal animal = new Dog(); Cat cat = (Cat)animal; System.out.println(cat.noise()); } } class Dog extends Animal{ public String noise(){ return “bark”; } } class Cat extends Animal{ public String noise(){ return “meow”; } } A. peep B.bark C.meow D.编译错误 E.抛出运行时异常 7、关于下列代码说法正确的是( ) public class Foo{ public int add(int a,int b){ return a+b; } public static void main(String[] args){ Foo foo= null; System.out.println(foo.add(10,20)); } } A. 编译错误 B. 正常运行,但无结果输出 C.30 D NullPointerException 8、程序的执行结果是( ) public class Test{ int x; public static void change(Test t){ t.x = 3; } public static void main(String[] args){

面向对象试题(答案)

CoreJavaOOP考试题 考试时间:90分钟 考试总分:100分 一、选择题(不定项选择)(22*4=88) 1. 类A,B的定义如下: class A { private int a = 100; A() { System.out.print("A()"); System.out.println(a); } } class B extends A { private int a = 200; B() { System.out.print("B()"); System.out.println(a); } } 运行下面的代码: new B(); 输出的结果是:(A )。 A. A() 100 B() 200 B. A() 200 B() 200 C. B() 200 A() 100 D. B() 200 A() 200

2.下列说法正确的是(D ) A.所有类都必须定义构造方法(构造器) B.构造方法必须初始化类的所有数据成员 C.子类定义了构造器后,不再调用父类的构造器 D.构造方法可以访问类的非静态成员 3.在Java中,哪个关键字使类不能派生子类?, (A ) A : final B : public C : private D : native 4.class Base{ static void test(){ System.out.println(“Base.test()”); } } public class Child extends Base{ static void test(){ System.out.println(“Child.test()”); } public static void main(String[] args){ Base base = new Child(); Child child = new Child(); base.test(); child.test(); } } 程序运行的结果是( C ) A.Child.test() Child.test() B.Child.test() Base.test() C.Base.test() Child.test() D.Base.test() Base.test()

面向对象技术Java 期末复习试卷(三)

期末复习试卷(三) 一、单项选择题 1、有一段java应用程序,其中包含一个公共类,名字为TestStudent,那么保存它的源 文件名是() A. teststudent.java B. teststudent .class C. TestStudent.java D. TestStudent.class 正确答案:C 解析:一个java文件中可以包含多个类,但最多只能有一个类是公共类(public),该java文件的名字要与公共类的一致。 2、关于下面的代码,哪个描述是正确的? public class Test{ public static void main(String[] args){ Integer n1 = new Integer(3); Object n2 = new Integer(4); System.out.println(https://www.360docs.net/doc/6516445915.html,pareTo(n2)); } } A. 可以编译通过,可以运行,并得到预期结果。 B. 可以编译通过,可以运行,但不能得到预期结果。 C. 可以编译通过,但又运行错误。 D. 有编译错误。 正确答案:D 解析:Integer类是基本数据类型int的包装类,里面封装了一个int类型的值,

提供了一些实用的方法(例如:在JavaFX中读取文本框内容是String类型的,如果要转换成int类型,就要调用Integer类的parseInt()方法)并实现了Comparable接口,在Comparable接口中定了抽象方法compareTo(T o), T是泛型,对于Integer类,T 被替换为Integer,如下图: 因此,Integer类中compareTo()方法的定义如下: 因此,compareTo的参数只能是Integer类型的,所以代码中的下面语句中的n2的类型需要进行强制类型转换,由Object转为Integer: System.out.println(https://www.360docs.net/doc/6516445915.html,pareTo(n2)); 正确写法如下: System.out.println(https://www.360docs.net/doc/6516445915.html,pareTo((Integer) n2)); 类似的包装类还有Long\Float\Double\Char\Boolean等,都是将基本数据类型包装为类。 3、下面哪种类型不是引用数据类型?() A. 数组 B. char C. String D. Object 正确答案:B 解析:基本数据类型只是存放数据,不提供功能(即方法)包括4类八种: 布尔类型:boolean

Java面向对象测试试题

《使用Java实现面向对象编程》阶段测试-笔试试卷 一、选择题(共25题,每题4分,满分100分) 1) 在Java类中,使用以下()声明语句来定义公有的int型常量MAX。 A. public int MAX = 100; B. final int MAX = 100; C. public static int MAX = 100; D. public static final int MAX = 100; 2) 在Java中,下列关于方法重载的说法中错误的是()。 A. 方法重载要求方法名称必须相同 B. 重载方法的参数列表必须不一致 C. 重载方法的返回类型必须一致 D. 一个方法在所属的类中只能被重载一次 3) 给定Java代码如下所示,在横线处新增下列()方法,是对cal方法的重载。 public class Test{ public void cal(int x, int y, int z) {} } A. public int cal(int x, int y, float z){ return 0; } B. public int cal(int x, int y, int z){ return 0; } C. public void cal(int x, int z){ } D. public void cal(int z, int y, int x){ } 4) 在Java中,下面对于构造函数的描述正确的是()。 A. 类必须显式定义构造函数 B. 构造函数的返回类型是void C. 构造函数和类有相同的名称,并且不能带任何参数 D. 一个类可以定义多个构造函数

java面向对象试卷及答案

java面向对象程序设计 系班级姓名成绩得分评卷人 一、填空题(每空2分,共20分) 1.Java源程序的扩展名是,经过编译后的程序的扩展名是。2.Socket通常也称为,用于描述和。3.线程的优先级在至之间,数值越大 4.构造方法是一种特殊的成员方法,构造方法名与相同 5.Java语言只允许单继承,指每个类只能有一个。 二、选择题(每题2分,共50分) 1.下列哪个概念是面向对象和面向过程程序设计所共有的() A、继承 B、流程控制 C、抽象 D、封装 2.以下关于执行Java小程序的论述错误的是:() A、可以通过浏览器调用嵌入了Java小程序的HTML文档 B、可以通过appletviewer.exe调用嵌入了Java小程序的HTML文档 C、可以通过java.exe调用嵌入了Java小程序的HTML文档 D、可以在Java集成开发环境中调用嵌入了Java小程序HTML文档 3.符合对象和类关系的是:() A、人和老虎 B、书和汽车 C、楼和土地 D、松树和植物 4.关于选择结构下列哪个说法正确?() A.if语句和else语句必须成对出现 B.if语句可以没有else语句对应 C.一个if语句只能有一个else if语句与之对应 D.else if结构中必须有default语句 5.while循环和do…while循环的区别是:()

A.没有区别,这两个结构任何情况下效果一样 B.while循环比do…while循环执行效率高 C.do…while循环执行次数可能为0 D.while循环执行次数可能为0 6.关于for循环和while循环的说法哪个正确?() A.while循环先判断后执行,for循环先执行后判断。 B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果C.两种循环任何时候都不可以替换 D.两种循环结构中都必须有循环体,循环体不能为空 7.下列修饰符中与访问控制无关的是() A.private B.public C.protected D.final 8.方法内的形参:() A.必须定义多个形参B.可以没有 C.至少有一个D.只能是简单变量 9.throws的作用:() A.表示方法可能会抛出例外 B.表示后面是方法的输出量 C.方法的标志,每个方法都必须有 D.没有意义 10.在Java语言中,整型常量123占用的存储字节数是:()A.1B.2 C.4 D.8 11.关于对象成员占用内存的说法哪个正确?() A.同一个类的对象共用同一段内存 B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间C.对象的方法不占用内存 D.以上都不对 12.return语句:()

Java面向对象测试试题(经典)

《使用实现面向对象编程》阶段测试-笔试试卷 一、选择题(共25题,每题4分,满分100分) 1) 在类中,使用以下()声明语句来定义公有的型常量。 A. = 100; B. = 100; C. = 100; D. = 100; 2) 在中,下列关于方法重载的说法中错误的是()。 A. 方法重载要求方法名称必须相同 B. 重载方法的参数列表必须不一致 C. 重载方法的返回类型必须一致 D. 一个方法在所属的类中只能被重载一次 3) 给定代码如下所示,在横线处新增下列()方法,是对方法的重载。 { ( x, y, z) {} } A. ( x, y, z){ 0; } B. ( x, y, z){ 0; } C. ( x, z){ }

D. ( z, y, x){ } 4) 在中,下面对于构造函数的描述正确的是()。 A. 类必须显式定义构造函数 B. 构造函数的返回类型是 C. 构造函数和类有相同的名称,并且不能带任何参数 D. 一个类可以定义多个构造函数 5) 下面代码的运行结果是()。 { ; 名字 0; 健康值 ; 性别 () { = 10; = "雄"; ("执行构造方法。"); } () { ("企鹅的名字是" + + ",健康值是" + + ",性别是" + "。"); } ([] ) { = (); (); } } A. 企鹅的名字是,健康值是10,性别是雄。 B. 执行构造方法。

企鹅的名字是,健康值是0,性别是。 C. 企鹅的名字是,健康值是0,性别是。 D. 执行构造方法。 企鹅的名字是,健康值是10,性别是雄。 6) 下列选项中关于中封装的说法错误的是()。 A. 封装就是将属性私有化,提供公有的方法访问私有属性 B. 属性的访问方法包括方法和方法 C. 方法用于赋值、方法用于取值 D. 类的属性必须进行封装,否则无法通过编译 7) 使用实现封装,第一步是修改属性可见性来限制对属性的访问,第二步是创建赋值和取值方法,用于对属性的访问,第三步应该是()。 A. 使用赋值和取值方法访问属性 B. 编写常规方法访问属性 C. 在赋值和取值方法中,加入对属性的存取限制 D. 编写方法创建对象,调用赋值和取值方法访问属性 8) 分析如下所示的代码,其中关键字的意思是()。 { ; () { ;

面向对象程序设计java语言程序设计期末考试试题及部分答案

《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案2 一、单选择题(每小题2分,共10分) 1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。 A. .java B. .class C. .html D. .exe 2、设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( A )。 A. 3 B. 3. 5 C. 4 D. 5 3、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( D )方法来完成一些画图操作。 A. start( ) B. stop( ) C. init( ) D. paint( ) 4、不允许作为类及类成员的访问控制符的是( C )。 A. public B. private C. static D. protected 5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。 A. static void method( ) B. public void method( ) C. final void method( ) D. abstract void method( ) 二、填空题(每空格1分,共20分) 1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码、和解释运行字节码。 2、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是Applet、类的子类并且存储该源程序文件的文件名为MyApplet。 3、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器javac.exe编译该源程序文件将产生3 个文件名与类名相同而扩展名为. class的字节码文件。

java面向对象知识点总结

j a v a面向对象知识点总 结 Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

1 类和对象 类: 类是用来描述一类事物的共性内容的, 类是抽象的; 创建类,如何描述 属性功能 用变量来描述属性 用方法来描述功能 对象: 就是现实中具体的事物,对象是具体的; 创建对象 类名对象名 = new 类名(); 如何通过对象访问类中属性和方法呢 对象名.变量名 对象名.方法名(); 只要是new的对象,就是新创建的,就会在内存中开辟一段单独的空间匿名对象 创建的对象没有赋值给具体的变量; 所以给匿名对象的属性赋值是没有任何意义的; 匿名对象使用场景

1 调用方法 2 作为参数传递 3 添加进容器中 This 关键字 This. 类中的普通方法访问到的成员前边都有this.这个关键字This. 就代表当前对象, 普通方法, 创建对象调方法, 谁调用就代表谁 This(); 可以用来在构造函数中调用本类与之相对应的构造函数使用注意事项: 1 this() 只能是构造函数的第一条执行语句 2 this() 不能在构造函数之间相互调用 3 this() 不能调用自己 构造函数(方法) 构造函数的作用 用来给对象进行初始话的(初始化就是指给对象的各个属性赋值) 构造函数何时执行 对象一创建就会调用与之相对应的构造函数

构造函数语法 修饰符没有返回值类型类名(参数列表){ 具体执行的代码 } 构造函数自动添加 当一个类中我们没有明确指定构造函数的话,jvm会自动帮我们添加一个空参数的构造, 如果我们指定了,就不添加了 构造函数和普通函数的区别 执行时机不同 对象一创建就会调用与之相对应的构造函数 普通函数只有被调用才会执行 return 1 就是用来在方法中返回具体结果(结果类型必须和方法的返回值类型一致) 2 即便方法的返回值类型是void,方法中也可以出现 return; 3 构造函数中也可以有return关键字 成员变量和局部变量 1 作用范围不同, 成员变量是定义在类中的,在整个类中都起作用 局部变量是定义在方法中的,在所在代码块起作用

JAVA面向对象基础测试题,继承,封装,多态等测试题

JAVA面向对象基础测试题 提示:本题为第一阶段,JAVA面向对象基础部分练习题,包括对象,类,继承,封装,多态,接口,内部类等等,java核心基础,适合初学者对面向对象基础的知识进行测试,以便查漏补缺。 1. 程序执行的结果是:()。 01 public class Point{ 02 int y = 7; 03 public void step(int y) { 04 y += y; 05 System.out.println(y); 06 } 07 public static void main(String[] args) { 08

Point p = new Point(); 09 p.step(10); 10 } 11 } A.14 B.20 C.10 D.17 正确答案:B解析: 2. 程序的执行结果是:()。 01 public class Question { 02 private int num; 03 public static void main(String [] args){ 04 Question q = new Question();

05 q.num=13; 06 update(q); 07 System.out.println(q.num); 08 } 09 public static void update(Question q){ 10 q.num=9; 11 } 12 } A.13 B.9 C.0 D.4 正确答案:B解析: 3.

程序执行的结果是:()。 01 public class Answer { 02 public static void main(String[] args) { 03 int score = 20; 04 Answer ans= new Answer(); 05 ans.add(score); 06 System.out.println(" main:score = " + score); 07 } 08 void add(int score) { 09 System.out.println(" add:score=" + score++); 10 } 11

《面向对象程序设计JAVA语言程序设计》期末复习试题及部分答案

一、单选题 1.在下列概念中,Java语言只保留了D A.运算符重载B.结构和联合C.指针D.方法重载 2.下列类定义中,不正确的是B A.class x { .... } B.static class x implements y1,y2 { .... } C.public class x extends Applet { .... } D.class x extends y { .... } 3.下列语句序列执行后,k 的值是B int m=3, n=6, k=0; while( (m++) < (- - n) ) ++k; i++ 先把i的初值赋给表达式(i++),作为表达式(i++)的值,然后i自增1作为i 的值。 如i=1,则表达式(i++)的值等于1,而i的值变为2。 ++i i先自增1,再把自增后的值赋给表达式(++i)。 如i=1,则表达式(++i)的值等于2,i的值也为2, A.0 B.1 C.2 D.3 4.设i、j为int型变量名,a为int型数组名,以下选项中,正确的赋值语句是A A.a[0] = 7; B.i = i + 2 C.i++ - --j; D.a(0) = 66; 5.Java语言的类间的继承关系是B A.多重的B.单重的C.线程的D.不能继承 6.下列语句序列执行后,k 的值是C int i=10, j=18, k=30; switch( j - i ) { case 8 : k++; case 9 : k+=2; case 10: k+=3; default : k/=j; } A.31 B.3 C.2 D.33 7.设有定义 float x=3.5f, y=4.6f, z=5.7f;则以下的表达式中,值为true的是C

JAVA面向对象编程测试题

Java 面向对象 一、单选: (1)在JDK1.5.0 安装目录下的bin 文件夹中,下面哪个程序是Java 执行器 (B) A )Javac.exe B )java.exe C)jdb.exe D )javah.exe E)javadoc.exe (E) (2)在JDK1.5.0 安装目录下的bin 文件夹中,下面哪个程序能生成Java 参考文档 A )Java.exe B )javac.exe C)appletviewer.exe D)javah.exe E)javadoc.exe (3)下列数据类型不属于整型的是 (E) A )byte 类型 B )short 类型 C)int 类型 D )long 类型 E)float 类型 (4 )精确保存一个值为“53.21458961”需要用什么数据类型 ( D) A )int 类型 B )long 类型 C)String 类型 D )double 类型 E)以上都可以 (5)循环语句for(int i=0。i<4。i++){}循环的次数为 (D) A )无限次 B )不确定 C)1 次 D )3 次 E)4 次 (6)若i、j 为已定义的整型,下面程序段中循环体执行的次数为 (B) for(i=0。i<5。i++){ for(j=0。j<=i。j++){ } } A )不确定 B )5 次 C)15 次 D )25 次 E)无限次 (7)执行下列程序段后,j 的值变为 (E) int i=1。 int j=10。 do{ j-=i。 i++。 }while(j--<0)。 A )9 B)10 C)-1 D)-2 E)8 (8)执行下列程序段后,y 的值变为 (E) int x,y。 for(y=1,x=1。y<=50。y++){ if(x>=10){

Java面向对象程序设计复习题附答案

Java面向对象程序设计复习题 一、选择题 1、下列哪个是Java中的关键字(C )。 A、run B、Integer C、default D、implement 2、下面关于Java.applet.Applet和其祖先类的描述语句哪个不对(B )。 A、Applet是Container的一种 B、Applet是Window的一种 C、Applet是Component的一种 D、Applet是Panel的一种 3、下列类DataOutputStream的构造方法正确的是(A )。 A、new dataOutputStream(new FileOutputStream(“out.txt”)); B、new dataOutputStream(“out.txt”); C、new dataOutputStream(new writer(“out.txt”)); D、new dataOutputStream(new FileWriter(“out.txt”)); 4、在switch(表达式)语句中,表达式的类型不能为(C )。 A、byte B、char C、long D、int 5、在接口MouseMotionListener中方法正确的是(A )。 A、Public void mouseDragged(MouseEvent) B、Public boolean mouseDragged(MouseEvent) C、Public void mouseDragged(MouseMotionEvent) D、Public boolean MouseDragged(MouseMotionEvent) 6、下面是一些异常类的层次关系 https://www.360docs.net/doc/6516445915.html,ng.Exception https://www.360docs.net/doc/6516445915.html,ng.RuntimeException https://www.360docs.net/doc/6516445915.html,ng.IndexOutOfBoundsException https://www.360docs.net/doc/6516445915.html,ng.ArrayIndexOutOfBoundsException https://www.360docs.net/doc/6516445915.html,ng.StringIndexOutOfBoundsException 假设有一个方法X,能够抛出两个异常,Array Index和String Index异常,假定方法X中没有try-catch语句,下面哪个答案是正确的。(B ) A、方法X应该声明抛弃ArrayIndexOutOfBoundsException和StringIndexOutOfBounds Exception。 B、如果调用X的方法捕获IndexOutOfBoundsException,则ArrayIndexOutOfBounds Exception和StringIndexOutOfBoundsException都可以被捕获。 C、如果方法X声明抛弃IndexOutOfBoundsException,则调用X的方法必须用Try-catch 语句 捕获。 D、方法X不能声明抛弃异常。 7、现有一变量声明为boolean aa;下面赋值语句中正确的是( D )。 A、aa=0 B、aa=True C、aa="true" D、aa=false 8、某类Example的main()方法参数为args,当输入数据Java Example cat时,args[0]的值为(A )。 A、cat B、Java C、example D、null 9、String s1=new String(“Java”);String s2=new String(s1)则下列哪个说法是正确的(C )。 A、表达式s1==s2为真 B、s1和s2是同一个对象

相关文档
最新文档