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

合集下载

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

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. 构造函数的返回类型是voidC. 构造函数和类有相同的名称,并且不能带任何参数D. 一个类可以定义多个构造函数5) 下面Java代码的运行结果是()。

class Penguin {private String name=null; // 名字private int health=0; // 健康值private String sex=null; // 性别public void Penguin() {health = 10;sex = "雄";System.out.println("执行构造方法。

java 面向对象 练习题

java 面向对象 练习题

java 面向对象练习题Java面向对象练习题1. 场景描述:小明是一名学生,他参加了一场Java编程的培训。

在课堂上,老师出了一些面向对象的练习题,希望学生能够通过练习加深对Java面向对象的理解。

2. 第一题:设计一个名为"Person"的类,该类包括以下数据成员:- 姓名(name)- 年龄(age)- 性别(gender)并且提供以下方法:- 构造方法(带参数初始化所有数据成员)- getter和setter方法- 显示个人信息的方法(输出姓名、年龄和性别)编写测试类,创建两个Person对象并设置相关属性后,分别通过调用显示个人信息的方法来展示它们的信息。

3. 第二题:设计一个名为"Student"的类,该类继承自Person类,并且新增以下数据成员:- 学号(studentID)- 成绩(score)其中,学号和成绩均为整型数据。

并且提供以下方法:- 构造方法(带参数初始化所有数据成员)- getter和setter方法- 重写父类的显示个人信息的方法,包括学号和成绩的输出编写测试类,创建一个Student对象并设置相关属性后,通过调用显示个人信息的方法展示其信息。

4. 第三题:设计一个名为"Teacher"的类,该类继承自Person类,并且新增以下数据成员:- 工号(teacherID)- 工龄(workingYears)其中,工号为字符串类型,工龄为整型数据。

并且提供以下方法:- 构造方法(带参数初始化所有数据成员)- getter和setter方法- 重写父类的显示个人信息的方法,包括工号和工龄的输出编写测试类,创建一个Teacher对象并设置相关属性后,通过调用显示个人信息的方法展示其信息。

5. 第四题:设计一个名为"Shape"的抽象类,该类包括以下数据成员:- 形状名称(name)并且提供以下方法:- 构造方法(带参数初始化形状名称)- 抽象方法"calculateArea",用于计算形状的面积设计并实现两个继承自Shape类的具体子类:- 圆形类(Circle):新增数据成员半径(radius),重写calculateArea方法来计算圆形的面积(3.14 * 半径 * 半径)- 矩形类(Rectangle):新增数据成员长度(length)和宽度(width),重写calculateArea方法来计算矩形的面积(长度 * 宽度)编写测试类,创建一个Circle对象和一个Rectangle对象并设置相关属性后,分别调用calculateArea方法来计算它们的面积,并输出结果。

Java面向对象编程练习试题包括答案.docx

Java面向对象编程练习试题包括答案.docx

【练习题】 01. 类的成员变量:猜数字游戏:一个类 A 有一个成员变量 v,有一个初值 100。

定义一个类,对 A 类的成员变量 v 进行猜。

如果大了则提示大了,小了则提示小了。

等于则提示猜测成功。

import .*;class A{int v = 100;A(){=v;}}public class b01{public static void main(String args[]){A a = new A();Scanner intput = new Scanner;int intputvalue = ();if(intputvalue>"你的输入大于这个值 ");if(intputvalue<"你的输入小于这个值 ");if(intputvalue=="猜测成功 ");}}【练习题】 02. 类的成员变量:请定义一个交通工具 (Vehicle)的类,其中有:属性:速度 (speed) ,体积 (size)等等方法:移动 (move()) ,设置速度 (setSpeed(int speed)),加速speedUp(),减速speedDown()等等 .最后在测试类Vehicle 它初始化 speed,size 对速度进行改变。

中的 main() 中实例化一个交通工具对象,并通过方法给的值,并且通过打印出来。

另外,调用加速,减速的方法class Vehicle{int speed;int size;void move(){};void setSpeed(int speed){ = speed;}void speedUp(){speed = speed+1;=speed;}void speedDown(){speed = speed-1;=speed;}}public class b01{ public static void main(String args[]){Vehicle a = new Vehicle();(55);=80;();"Speed:"++"\nsize:"+;}}【练习题】 03. 类的成员变量与方法、构造方法在程序中,经常要对时间进行操作,但是并没有时间类型的数据。

面向对象测试题及答案

面向对象测试题及答案

面向对象测试题及答案一、选择题(每题2分,共20分)1. 面向对象编程(OOP)的核心概念不包括以下哪一项?A. 类B. 继承C. 多态D. 过程2. 在Java中,以下哪个关键字用于定义类?A. classB. typeC. structD. interface3. 下列哪个选项不是Java中访问控制的关键字?A. publicB. privateC. protectedD. global4. 封装是面向对象编程的一个重要特性,它主要指的是:A. 将数据和操作数据的方法组合在一起B. 将所有数据都设为公开访问C. 只允许通过特定的方法访问数据D. 将数据和方法分离5. 在Java中,以下哪个不是构造方法的特点?A. 与类名相同B. 没有返回类型C. 可以重载D. 可以被继承6. 继承在面向对象编程中允许:A. 一个类只能继承一个类B. 一个类可以继承多个类C. 一个类可以继承多个接口D. 一个类可以同时继承多个类和接口7. 接口在Java中的主要作用是:A. 定义类B. 实现多继承C. 定义方法的实现D. 定义方法的签名8. 以下哪个是Java中实现多态的方式?A. 继承B. 接口C. 重载D. 重写9. 抽象类在Java中不能:A. 被实例化B. 包含抽象方法C. 包含具体方法D. 被继承10. 下列哪个不是Java集合框架中接口?A. ListB. SetC. MapD. Array二、简答题(每题5分,共30分)1. 简述面向对象编程的三大特性。

2. 解释什么是多态,并给出一个Java中多态的例子。

3. 什么是封装?封装在Java中是如何实现的?4. 什么是接口?接口和抽象类有什么区别?5. 什么是构造方法?构造方法的作用是什么?6. 什么是继承?继承在Java中是如何实现的?三、编程题(每题25分,共50分)1. 编写一个Java程序,定义一个名为`Car`的类,包含以下属性和方法:- 属性:品牌(String类型),颜色(String类型),速度(int 类型)- 方法:启动汽车(startCar),加速(accelerate),减速(decelerate)2. 在上述`Car`类的基础上,创建一个名为`ElectricCar`的子类,继承`Car`类,并添加一个额外的属性:电池电量(int类型),并重写`startCar`方法以显示电动汽车启动的信息。

java面向对象编程练习题及答案

java面向对象编程练习题及答案

java面向对象编程练习题及答案一、选择题1. 在Java中,以下哪个关键字用于定义类?A. structB. classC. interfaceD. enum2. Java中的继承是:A. 多重继承B. 单一继承C. 无继承D. 可选继承3. 以下哪个是Java中的访问修饰符?A. publicB. privateC. protectedD. 所有选项都是4. 以下哪个不是Java对象的三个基本特征?A. 封装B. 继承C. 多态D. 线程5. 以下哪个方法用于获取对象的内存地址?A. hashCode()B. equals()C. getClass()D. toString()二、简答题1. 解释Java中的封装是什么,并给出一个封装的例子。

2. 描述Java中的继承是如何工作的,并给出一个继承的例子。

3. 解释Java中的多态性,并给出一个多态性的例子。

三、编程题1. 创建一个名为`Car`的类,它具有以下属性:- 品牌(String)- 型号(String)- 年份(int)并为这些属性提供getter和setter方法。

2. 创建一个名为`ElectricCar`的类,它继承自`Car`类,并添加以下属性:- 电池电量(int)实现`ElectricCar`类,并重写`toString()`方法,以显示电动汽车的详细信息。

3. 创建一个名为`VehicleTest`的类,它包含`main`方法。

在`main`方法中,创建`Car`和`ElectricCar`的实例,并打印它们的状态。

四、代码分析题1. 阅读以下Java代码片段,并解释它的作用:```javapublic class Person {private String name;private int age;public Person(String name, int age) { = name;this.age = age;}public String getName() {return name;}public void setName(String name) { = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}```2. 阅读以下Java代码片段,并指出可能的错误:```javapublic class Animal {public void speak() {System.out.println("The animal makes a sound");}}public class Dog extends Animal {@Overridepublic void speak() {System.out.println("The dog barks");}}public class Cat extends Animal {@Overridepublic void speak() {System.out.println("The cat meows");}}public class TestAnimals {public static void main(String[] args) {Animal myDog = new Dog();Animal myCat = new Cat();myDog.speak();myCat.speak();}}```五、论述题1. 论述Java面向对象编程中接口与抽象类的区别,并给出使用场景。

面向对象练习题

面向对象练习题

面向对象练习题一、选择题1. 在面向对象编程中,以下哪个概念不是面向对象的核心概念?A. 封装B. 继承C. 多态D. 函数2. 以下哪个选项是Java语言中实现多态的方式?A. 通过继承B. 通过接口C. 通过重载D. 通过重写3. 在面向对象编程中,一个类可以有多少个父类?A. 0个或1个B. 1个C. 多个D. 无数个4. 以下哪个关键字在Java中用于定义一个类?A. structB. classC. interfaceD. enum5. 以下哪个是Java中创建对象的关键字?A. newB. createC. instanceD. object二、填空题6. 在面向对象编程中,______ 是指将数据和操作这些数据的方法结合在一起。

7. 一个类可以包含______ 和______ 两种成员。

8. 封装的目的是______ 数据,并对外部隐藏内部细节。

9. 继承可以使得子类获得父类的______ 和______。

10. 多态性允许不同类的对象对同一消息做出响应,但具体______ 取决于对象的实际类型。

三、简答题11. 简述面向对象编程的三大特性,并举例说明它们在实际编程中的应用。

12. 解释什么是接口,并说明接口与抽象类的区别。

13. 描述如何使用Java实现一个简单的类,并说明如何创建该类的实例。

四、编程题14. 编写一个Java类`Person`,包含属性`name`和`age`,以及一个方法`introduce()`,该方法输出个人信息。

15. 假设你已经有一个名为`Animal`的抽象类,它包含一个抽象方法`makeSound()`。

编写一个名为`Dog`的类,继承自`Animal`,并实现`makeSound()`方法,使得`Dog`对象调用该方法时输出"Woof!"。

16. 创建一个Java程序,包含一个名为`Vehicle`的类,它有一个属性`speed`和一个方法`increaseSpeed(int increment)`。

《Java面向对象编程》练习题

《Java面向对象编程》练习题

专题1 初识Java之南宫帮珍创作一、填空题1.自从Sun推出Java以来,按应用范围可分为三个版本,分别是()、()、()。

2.环境变量的设置,若JDK装置在“D:\JDK”,则应设置Path 为()、classpath为()。

3.Java源文件的扩展名为(),用Javac编译Java源文件,得到的字节码文件的扩展名为()。

4.如果Java源文件中有多个类,那么只能有一个类是()类。

二、选择题1.作为Java应用程序入口的main方法,其声明格式是()A.public static int main(String args[]) B.public static void main(String args[])C.public void main(String args[]) D.public int main(String args[])2.下面命令正确的是()A.java AppFirst.java B.java AppFirstC.java appfirst.class D.javac AppFirst3.设有一个Java小程序,源程序名为FirstApplet.java,其HTML文件为FirstApplet.html,则运行该小程序的命令为()4.JDK装置完成后,主要的命令如javac、java等,都存放在根目录的()文件夹下。

A.bin B.jre C.include D.doc5.Java语言是一种__语言。

A.机器B.汇编C.面向过程的D.面向对象的6、Java程序的最基本组成单位是__。

A.函数B.过程C.变量D.类三、简答题(十分重要)1.Java语言有哪些特点?2.JDK装置完成后,如何设置环境变量?4.简述Java应用程序的开发过程专题2 标识符、表达式、数据类型一、填空题1.Java逻辑常量有两个:()和()。

2.写出下列表达式的运算结果,设a=2,b=-4,c=true。

2.Java面向对象知识测试 - 含答案

2.Java面向对象知识测试 - 含答案

单选题:(每道题目2分)1:下列有关类、对象和实例的叙述,正确的是哪一项?()A.类就是对象,对象就是类,实例是对象的另一个名称,三者没有差别B.对象是类的抽象,类是对象的具体化,实例是对象的另一个名称C.类是对象的抽象,对象是类的具体化,实例是类的另一个名称D.类是对象的抽象,对象是类的具体化,实例是对象的另一个名称2:类Student中成员变量声明正确的是哪一项? ()A.class Student{name;age;}B.class Student{String name = 1.0;int age = “26”;}C.class Student{String name;int age;}D.class Student{String name,int age;}3:类Student中成员方法声明正确是哪一项?()A:class Student{public show(){}}B:class Student{public void show();}C:class Student{public void show(){}}D:class Student{show(){}}4:类Student中构造方法声明正确的是哪一项? () A:class Student{public Student()}B:class Student{public Student(){}}C:class Student{public void Student(){}}D:class Student{new Student(){}}5:下列哪一项不是面向对象的三大特征之一? ()A:封装B:抽象C:继承D:多态6:下列关于封装说法不正确的是?()A:封装可以提高代码的安全性。

B:封装是指隐藏实现细节,提高公共的访问方式。

C:类或者方法也是封装的一种体现。

D:仅仅private修饰的内容才是封装的体现。

7:下列哪个方法和int sum(int a,int b)是重写方法?() A:public void sum(int a,int b)B:public int sum(int a,int b)C:int sum(int a,int b,int c)D:void sum(int c,int b)8:下列程序的运行结果是:()class Test{private static int x = 10;public void show(int x){x++;System.out.println(x);}public static void main(String[] args){int x = 20; //局部变量覆盖成员变量Test t = new Test();t.show(x);}}A:10B:21C:11D:209:在子类中调用父类中被重写的方法时需要使用哪个关键字?() A.thisB.newC.superD.以上都不是10:如果想一个类不能被子类继承的话,用下列哪个修饰符? () A:staticB:abstractC:privateD:final11:有如下两个类,在main方法中下面哪个做法是错误的?() class Animal{}class Dog extends Animal{}A:Animal a = new Animal();B:Dog d = new Dog();C: Animal a = new Dog();D:Dog d = new Animal();12:下列有关抽象类的叙述正确的是哪项?() A:抽象类中一定含有抽象方法B:抽象类既能被实例化也能被继承C:抽象类的声明必须包含abstract关键字D:抽象类中不能有构造方法13:下列有关接口的叙述错误的是哪项?() A:接口中只能包含抽象方法和常量B:一个类可以实现多个接口C:具体类实现接口时必须实现其中的方法D:接口不能被继承14:下列程序的运行结果是:()class Fu{public int num = 10;}class Zi extends Fu{public int num = 20;}class Testpublic static void main(String[] args) {Fu f = new Zi();System.out.println(f.num);Zi z = (Zi)f;System.out.println(z.num);}}A:10,10B:20,20C:10,20D:20,1015:下列程序的运行结果是:()class Fu{public void show(){System.out.println("fu show");}}class Zi extends Fu{public void show(){System.out.println("zi show");}public void method(){System.out.println("zi method");}}class Test{public static void main(String[] args){Fu f = new Zi();f.method();}}A:fu showB:zi showC:编译报错D:zi method16:关于代码块说法错误的是?()A:静态代码块在类加载的时候执行一次,在创建对象的时候不在执行了。

java面向对象试题及答案

java面向对象试题及答案

java面向对象试题及答案1. 试题一题目:什么是面向对象编程?请简要描述面向对象编程的优势和特点。

答案:面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,将程序中的数据和操作数据的方法进行了封装,使得程序更加模块化和易于理解。

面向对象编程的主要特点包括封装、继承和多态。

封装使得数据和对数据的操作集中在一个对象中,可以隐藏内部实现细节,提供公共的接口进行访问,增加了程序的安全性和灵活性。

继承允许新建的类继承已有类的属性和方法,通过扩展和重写已有类的功能,减少了代码的重复性,提高了代码的复用和可维护性。

多态允许不同的对象对相同的消息作出不同的响应,通过接口和抽象类的使用,实现了更加灵活和可扩展的程序设计。

面向对象编程的优势包括了代码的重用性、可维护性、可扩展性和灵活性。

通过封装和继承的应用,可以减少代码重复,提高开发效率,并且通过多态的应用,可以实现程序的灵活性,方便后续的扩展和修改。

2. 试题二题目:什么是类?请简要描述类的特点和组成部分。

答案:类是面向对象编程中的核心概念,是对一类具有相同属性和行为的对象进行抽象和封装的模板。

类是用来创建对象的蓝图,可以通过实例化类来创建对象。

类的特点包括了封装、继承和多态。

类通过封装将属性和方法进行了封装,提供了公共的接口与外部进行交互,隐藏了内部实现细节。

继承允许新建的类继承已有类的属性和方法,在原有基础上进行修改和扩展。

多态允许不同的对象对相同的消息作出不同的响应,实现了程序的灵活性和可扩展性。

类的组成部分包括了属性(Field)和方法(Method)。

属性(也称为成员变量)用于描述对象的状态,可以是基本类型或其他类的对象。

方法用于描述对象的行为,可以是处理属性的操作,也可以是其他业务逻辑的实现。

3. 试题三题目:请简要解释传值和传引用的区别,并用代码示例说明。

答案:传值和传引用是在方法调用时,参数传递的两种方式。

Java面向对象测试试题

Java面向对象测试试题

Java面向对象测试试题一、单选题1. 下面哪个关键字可以用来声明一个抽象类?A) abstractB) finalC) privateD) protected2. 在Java中,一个类可以同时继承多个类吗?A) 可以B) 不可以3. 在Java中,接口的成员变量默认是什么修饰符?A) privateB) protectedC) publicD) 默认不写修饰符4. 下面哪种访问权限修饰符可以让子类访问父类的成员变量?A) privateB) protectedC) publicD) 默认不写修饰符5. 下面哪个关键字可以用来声明一个常量?A) constantB) finalC) staticD) default二、填空题1. 在Java中,可以通过____关键字来引入其他包中的类。

2. 在Java中,____关键字可以用来防止重写一个方法。

3. 在Java中,____关键字表示当前对象的引用。

4. 在Java中,____关键字用于表示父类。

三、编程题请编写一个Java类,实现一个矩形的类,要求具有以下功能:1. 拥有长度和宽度两个属性。

2. 拥有计算矩形面积的方法。

3. 能够输出矩形的属性信息。

```javapublic class Rectangle {private double length;private double width;public Rectangle(double length, double width) {this.length = length;this.width = width;}public double getArea() {return length * width;}public void printInfo() {System.out.println("Length: " + length);System.out.println("Width: " + width);}}```使用上述代码,可以创建一个矩形对象并调用相应方法来获取矩形的面积和属性信息。

java面向对象考题和答案

java面向对象考题和答案

1.下面代码的输出结果是:2.public class Main {3. public static void main(String[] args) {4. int n = 100;5. int m = 200;6. System.out.println(f(n,m));7. System.out.println(n);8. }9. public static int f(int m, int n) {10. n = m+n;11. return n;12. }13.}A.300300B.100100C.300100D.1003002.程序执行的结果是:3.public class Test {4. public static void main(String[] args) {5. int x = 6;6. Test p = new Test();7. p.doStuff(x);8. System.out.println(" main: x = " + x);9. }10. void doStuff(int x) {11. System.out.println(" doStuff:x =" + x++);12. }13.}A.doStuff:x =7B. main: x = 7B.doStuff:x =7main: x = 6C.doStuff:x =6main: x = 7D.doStuff:x =6main: x = 63.下列关于JVM的内存结构描述正确的是:A.类的各种信息在方法区中保存B.堆用于存放程序运行过程当中所有的局部变量C.栈用于存储使用new关键字创建的对象D.数组属于JVM的内存结构4.下列代码的输出结果是:5.public class Test {6. public void print(char c) {7. System.out.println("c");8. }9.10. public void print(int i) {11. System.out.println("i");12. }13.14. public void print(double d) {15. System.out.println("d");16. }17. public void print(String s) {18. System.out.println("s");19. }20. public static void main(String[] args) {21. Test test=new Test();22. test.print('5');23. }24.}A.cB.iC.dD.s5.程序执行的结果是:6.public class Test {7. String name="Tom";8. public Test(String name){9. name=name;10. }11. public static void main(String [] args){12. Test t = new Test("Jack");13. System.out.println();14. }15.}A.nullB.TomC.JackD." "6.关于构造方法,下列说法错误的是:A.构造方法不可以进行方法重写B.构造方法用来实例化一个新的对象C.构造方法具有和类名相同的名称D.构造方法不返回任何数据类型7.关于 Java 中继承的特点,下列说法正确的是:A.使类的定义复杂化B.Java 只支持单继承,不可多继承,但可以通过实现接口来达到多继承的目的C.子类继承父类的所有成员变量和方法,包括父类的构造方法D.不可以多层继承,即一个类不可以继承另一个类的子类8.下列代码运行的结果是:class Foo {public int a;public Foo() {a = 3;}public void addFive() {a += 5;}}class Bar extends Foo {public int a;public Bar() {a = 8;}public void addFive() {this.a += 5;}}public class TestFoo {public static void main(String[] args) {Foo foo = new Bar();foo.addFive();System.out.println("Value: " + foo.a);}}A.Value: 3B.Value: 8C.Value: 13D.Value: 189.下列代码编译和运行的结果是:10.class Person {11. String name = "No name";12.13. public Person(String nm) {14. name = nm;15. }16.}17.class Employee extends Person {18. String empID = "0000";19.20. public Employee(String id) {21. empID = id;22. }23.}24.public class EmployeeTest {25. public static void main(String[] args) {26. Employee e = new Employee("4321");27. System.out.println(e.empID);28. }29.}A.输出:0000B.输出:4321C.代码public Employee(String id) {行,出现编译错误D.抛出运行时异常10.下列代码的运行结果是:11.public class Animal {12. public String noise() {13. return "peep";14. }15. public static void main(String[] args) {16. Animal animal = new Dog();17. Cat cat = (Cat)animal;18. System.out.println(cat.noise());19. }20.}21.class Dog extends Animal {22. public String noise() {23. return "bark";24. }25.}26.class Cat extends Animal {27. public String noise() {28. return "meow";29. }30.}A.peepB.barkC.meowD.抛出运行时异常11.下列代码编译和运行的结果是:public class A {public void start() {System.out.println("TestA");}}public class B extends A {public void start() {System.out.println("TestB");}public static void main(String[] args) {( (A) new B( ) ).start();}}A.输出:TestAB.输出:TestBC.输出:TestA TestBD.编译错误12.请看下列代码:class One {void foo() {}}class Two extends One {// insert method here}下列选项中的代码,放置在<插入代码>处无编译错误的是: A.int foo() { /* more code here */ }B. protected void foo() { /* more code here */ }C. public void foo() { /* more code here */ }D. private void foo() { /* more code here */ }13.下列选项中,不属于Java 的访问修饰符的是:A.privateB.protectedC.friendlyD.public14.下列代码的输出结果是:15.class Foo {16. private int x;17. public Foo(int x) {18. this.x = x;19. }20. public void setX(int x) {21. this.x = x;22. }23. public int getX() {24. return x;25. }26.}27.public class Gamma {28. static Foo fooBar(Foo foo) {29. foo = new Foo(100);30. return foo;31. }32. public static void main(String[] args) {33. Foo foo = new Foo(300);34. System.out.print(foo.getX() + "-");35. Foo fooFoo = fooBar(foo);36. System.out.print(foo.getX() + "-");37. System.out.print(fooFoo.getX() + "-");38. foo = fooBar(fooFoo);39. System.out.print(foo.getX() + "-");40. System.out.print(fooFoo.getX());41. }42.}A.300-100-100-100-100B.300-300-100-100-100C.300-300-300-100-100D.300-300-300-300-10015.下列代码运行的结果是:16.public class Base {17. public static final String FOO = "foo";18.class Sub extends Base {19. public static final String FOO = "bar";20.}21. public static void main(String[] args) {22. Base b = new Base();23. Sub s = new Sub();24. System.out.print(Base.FOO);25. System.out.print(Sub.FOO);26. System.out.print(b.FOO);27. System.out.print(s.FOO);28. System.out.print(((Base) s).FOO);29. }30.}31.A.foofoofoofoofooB.foobarfoobarbarC.foobarfoofoofooD.foobarfoobarfoo16.关于下列代码说法正确的是:17.public class ItemTest {18. private final int id;19. public ItemTest(int id) {20. this.id = id;21. }22. public void updateId(int newId) {23. id = newId;24. }25. public static void main(String[] args) {26. ItemTest fa = new ItemTest(42);27. fa.updateId(69);28. System.out.println(fa.id);29. }30.}A.编译错误B.运行时抛出异常C.运行后,fa对象属性id的值没有改变,应然是42D.运行后,fa对象属性id的值改变成新的值6917.请看下列代码编译和运行的结果是:18.public class Student {19. private String name="sun";20. public static void main(String[] args) {21. Student[] students=new Student[2];22. System.out.println(students[0].name);23. System.out.println(students.length);24. }25.}A.sun 2B.null 2C.null 1D.运行时抛出NullPointerException异常18.下列代码的输出结果是:19.abstract class Vehicle {20. public int speed() {21. return 0;22. }23.}24.class Car extends Vehicle {25. public int speed() {26. return 60;27. }28.}29.class RaceCar extends Car {30. public int speed() {31. return 150;32. }33.}34.public class TestCar {35. public static void main(String[] args) {36. RaceCar racer = new RaceCar();37. Car car = new RaceCar();38. Vehicle vehicle = new RaceCar();39. System.out.println(racer.speed() + ", " + car.speed() + ", "40. + vehicle.speed());41. }42.}A.0, 0,0B.150, 60, 0C.150, 150, 150D.抛出运行时异常19.请看下列代码:public abstract class Employee {protected abstract double getSalesAmount();public double getCommision() {return getSalesAmount() * 0.15;estA() {}}class Sales extends Employee {<插入代码>}在<插入代码>处填入的方法正确的是:A.double getSalesAmount() { return 1230.45; }B.public double getSalesAmount() { return 1230.45; }C.private double getSalesAmount() { return 1230.45; }D.protected double getSalesAmount() { return 1230.45; }20.关于下列代码说法正确的是:public interface A {public void doSomething(String thing);}public class AImpl implements A {public void doSomething(String msg) {}}public class B {public A doit() {return null;}public String execute() {return null;}}public class C extends B {public AImpl doit() {return null;}public Object execute() {return null;}}A. 所有类和接口都编译成功B.类B编译失败C.类Aimpl编译失败D.类C编译失败21.关于下列代码说法正确的是:interface A {public void aMethod();}interface B {public void bMethod();}interface C extends A, B {public void cMethod();}class D implements B {public void bMethod() {}}class E extends D implements C {public void aMethod() {}public void bMethod() {}public void cMethod() {}}A.编译失败B.如果定义D e = new E();, 那么 e.bMethod();调用D类的bMethod()方法C.如果定义D e = (D)(new E());, 那么 e.bMethod();调用D类的bMethod()方法D.如果定义D e = (D)(new E());, 那么 e.bMethod();调用E类的bMethod()方法22.请看下列代码:public class UserRequest {public void request(ServletAction action) {action.doService();}public static void main(String[] args) {UserRequest user = new UserRequest();user.request(new ServletAction() {public void doService() {System.out.println("处理请求");}});}}如果上述代码采用回调模式编写,下列关于ServletAction的定义正确的是:A. public static class ServletAction {public void doService();}B.public final class ServletAction {public void doService();}C.public class ServletAction {public void doService();}D. public interface ServletAction {public void doService();}23.下列代码运行的结果是:24.public class Hello {25. String title;26. int value;27. public Hello() {28. title += "World";29. }30. public Hello(int value) {31. this.value = value;32. title = "Hello";33. }34. public static void main(String[] args) {35. Hello c = new Hello(5);36. System.out.println(c.title);37. }38.}A.HelloB. Hello WorldC. Hello World 5D.运行后无输出24.请看下列代码编译和运行的结果是:25.interface TestA {26. String toString();27.}28.public class Test {29. public static void main(String[] args) {30. System.out.println(new TestA() {31. public String toString() {32. return "test";33. }34. });35. }36.}A.输出:testB.输出:nullC.代码System.out.println(new TestA() {行,编译出错D.代码public String toString() {行,编译出错25.请看下列代码:1)public class Outer {2) void fn(int i) {3) class Inner {4) void print() {5) System.out.println(i);6) }7) }8) Inner in = new Inner();9) in.print();10) }11)}12)class Test {13) public static void main(String args[]){14) Outer out=new Outer();15) out.fn(100);16) }17)}关于上述代码说法正确的是:A.在第5行出现编译错误,fn方法的参数必须用final修饰B.在第3行出现编译错误,在方法的内部不能写类C.在第8行出现编译错误,在方法的内部不能实例化Inner类的对象D.运行代码,控制台输出100A1,正确答案:C2,正确答案:D3,正确答案:A4,正确答案:A5,正确答案:B6,正确答案:B7,正确答案:B8,正确答案:A9,正确答案:C10,正确答案:D11,正确答案:B12,正确答案:BC13,正确答案:C14,正确答案:B15,正确答案:D16,正确答案:A 17,正确答案:D 18,正确答案:C 19,正确答案:BD 20,正确答案:D21,正确答案:D 22,正确答案:D 23,正确答案:A 24,正确答案:A 25,正确答案:A。

Java面向对象期末考试题

Java面向对象期末考试题

Java期末考试题选择题(每题2分,共20分)1.在Java中,下列哪个选项是合法的变量名?(2分)A. 3xB. _nameC. $valueD. -age2.Java中boolean类型的取值是什么?(2分)A. 0 和1B. true 和falseC. yes 和noD. on 和off3.Java中,数组的第一个元素的下标是多少?(2分)A. 0B. 1C. -1D. 取决于数组的长度4.下列哪个关键字用于定义不可变的变量?(2分)A. staticB. constC. finalD. immutable5.Java中,继承是使用哪个关键字实现的?(2分)A. implementsB. extendsC. inheritsD. derives6.抽象类的特点是什么?(2分)A. 可以实例化B. 必须包含至少一个抽象方法C. 不能包含具体方法D. 可以包含具体方法7.使用哪个方法可以获取字符串的长度?(2分)A. length()B. size()C. lengthD. getSize()8.在Java中,++i比i++的效率高。

(2分)A. 正确B. 错误9.在Java中,所有类都直接或间接继承自Object类。

(2分)A. 正确B. 错误10.StringBuffer类是线程安全的。

(2分)A. 正确B. 错误填空题(每题2分,共20分)1.在Java中,使用关键字______声明类变量。

(2分)2.使用______关键字可以跳出当前循环。

(2分)3.______方法用于在字符串末尾添加新的字符串,而不改变原字符串。

(2分)4.Java中,如果子类的方法与父类的方法相同,这种机制称为______。

(2分)5.在Java中,一个类可以实现多个______。

(2分)6.使用______关键字可以声明一个方法可能抛出的异常。

(2分)7.______是Java中用于生成文档注释的注释方式。

(2分)8.在Java中,使用______和______关键字可以定义一个二维数组。

java面向对象练习题目

java面向对象练习题目

1. super()与this()的区别?2.作用域public,protected,private,以及不写时的区别?3.在JAVA中,如何跳出当前的多重嵌套循环?4. 一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?5.Overload和Override的区别。

Overloaded的方法是否可以改变返回值的类型?6. final类有什么特点?7.Java中的异常处理机制的简单原理和应用。

8.final, finally, finalize的区别?9.int 和 Integer 有什么区别?1、【练习题】构造方法与重载定义一个网络用户类,要处理的信息有用户ID、用户密码、email地址。

在建立类的实例时,把以上三个信息都作为构造函数的参数输入,其中用户ID和用户密码时必须的,缺省的email地址是用户ID加上字符串"@"2、【练习题】构造方法与重载、包编写Addition类,该类中应包含一组实现两数相加运算的重载方法。

实现加法运算的方法,应接受两个参数(即加数和被加数),方法将两个参数进行加法运算后,返回相加结果。

考虑可能针对不同的数据类型进行计算,重载一组方法,包括整型、长整型、浮点型、双精度浮点型、还有字符串。

在main方法中创建Addition类的实例,分别调用重载方法测试其效果。

应将Addition类打入到包中,以自己名字的拼音为包命名。

4、【练习题】构造方法与重载建立一个汽车类,包括轮胎个数,汽车颜色,车身重量等属性。

并通过不同的构造方法创建事例。

至少要求:汽车能够加速,减速,停车。

要求:命名规范,代码体现层次,有友好的操作提示。

5、【练习题】构造方法与重载创建一个类,为该类定义三个构造函数,分别执行下列操作:1、传递两个整数值并找出其中较大的一个值2、传递三个double值并求出其乘积3、传递两个字符串值并检查其是否相同4、在main方法中测试构造函数的调用6、【练习题】Static关键字与普通变量的区别:创建一个名称为StaticDemo的类,并声明一个静态变量和一个普通变量。

java面向对象程序设计练习题(有答案)

java面向对象程序设计练习题(有答案)

满分:100 分姓名:班级:学号:1. 填空题 ( 5.0 分 )面向对象三大特征______ ______ ______正确答案:封装继承多态2. 填空题 ( 5.0 分 )使用static 修饰的变量称为静态变量,静态变量可以有两种访问方式,分别是对象名.静态变量名和______正确答案:类名.静态变量名3. 单选题 (4.0 分 )下面关于java 中类的说法哪个是不正确的A. 构造函数是类中的特殊方法B. 类一定要声明为public 的,才可以执行C. 在软件设计中,类,就是一个模板,它定义了通用于一个特定种类的所有对象的属性(变量)和行为(方法)D. 一个java 文件中可以有多个class 定义(但只能有一个public 修饰的类)正确答案:B4. 单选题 ( 4.0 分 )关于类中可以包含的内容,如下说法错误的是()A. 类中可以包含属性和方法B. 类中可以直接包含代码块C. 类中可以嵌套定义类D. 类中不能包含其他类正确答案:D5. 单选题 ( 4.0 分 )构造方法是否可被重写和重载()A. 不能重写,可以重载B. 可以重写,不能重载C. 不能重写,不能重载D. 可以重写,可以重载正确答案:A6. 单选题 ( 4.0 分 )关于封装的好处,以下错误的是()A. 隐藏实现的细节B. 方便修改的实现C. 只能通过规定方法访问D. 实现代码复杂化正确答案:D7. 单选题 ( 4.0 分 )在Java 中,下面描述正确的是()A. 一个子类可以有多个父类,一个父类也可以有多个子类B. 一个子类可以有多个父类,但一个父类只可以有一个子类C. 一个子类只可以有一个父类,但一个父类可以有多个子类D. 以上说法都不对正确答案:C8. 单选题 ( 4.0 分 )Java 语言的类间的继承关系是A. 多重的B. 单继承C. 线程的D. 不能继承正确答案:B9. 单选题 ( 4.0 分 )以下关于this 和super 关键字的说法错误的是()A. this 关键字指向当前对象自身,super 关键字指向当前对象的直接父类B. 在main 方法中可以存在this 或者super 关键字,但不能同时存在。

java面向对象试题及答案

java面向对象试题及答案

java面向对象试题及答案一、单选题(每题2分,共10分)1. 在Java中,下列哪个关键字用于定义一个类?A. classB. interfaceC. structD. enum答案:A2. Java中,哪个关键字用于定义一个私有方法?A. privateB. publicC. protectedD. default答案:A3. 下列哪个选项不是Java中的访问修饰符?A. privateB. publicC. protectedD. static答案:D4. 在Java中,哪个关键字用于实现多态?A. abstractB. finalC. staticD. interface答案:A5. 在Java中,下列哪个关键字用于定义一个接口?A. classB. interfaceC. structD. enum答案:B二、多选题(每题3分,共15分)1. 在Java中,下列哪些关键字用于定义一个类的方法?A. publicB. privateC. protectedD. static答案:A, B, C, D2. 下列哪些关键字用于实现类的继承?A. extendsB. implementsC. abstractD. final答案:A3. 在Java中,下列哪些关键字用于定义类的成员变量?A. privateB. publicC. protectedD. static答案:A, B, C, D4. 下列哪些关键字用于定义类的构造方法?A. constructorB. thisC. newD. super答案:B, D5. 在Java中,下列哪些关键字用于定义接口的常量?A. privateB. publicC. staticD. final答案:B, C, D三、判断题(每题2分,共10分)1. Java中,一个类可以继承多个类。

(错误)2. Java中,接口可以继承接口。

(正确)3. Java中,一个类可以继承多个接口。

java面向对象期末试题及答案

java面向对象期末试题及答案

java面向对象期末试题及答案一、选择题(共10题,每题2分,共20分)1. 下列选项中,不属于Java的基本数据类型的是:A) intB) doubleC) booleanD) String答案:D2. 下列选项中,哪个关键字表示一个类不能被继承:A) finalB) staticC) privateD) abstract答案:A3. 在Java中,抽象类的特点是:A) 可以直接实例化B) 可以包含具体方法C) 可以被继承D) 可以实现多重继承答案:C4. 下列选项中,哪个关键字表示一个方法可以被子类重写:A) staticB) finalC) privateD) abstract答案:D5. 在Java中,接口的特点是:A) 可以包含成员变量B) 可以被实例化C) 可以包含具体方法D) 可以被类直接继承答案:B6. 下列选项中,哪个关键字表示一个方法或类只能被同一个包内的其他类访问:A) protectedB) publicC) privateD) default答案:D7. 在Java中,多态的实现方式是通过:A) 继承B) 接口C) 抽象类D) 重载答案:A8. 下列选项中,哪个关键字表示一个方法可以在同一个类中多次定义,但参数列表必须不同:A) staticB) finalC) privateD) overloading答案:D9. 在Java中,使用关键字“this”表示的是:A) 调用当前对象的方法B) 调用父类的方法C) 调用子类的方法D) 调用类的静态方法答案:A10. 下列选项中,哪个关键字表示一个方法不能被子类重写:A) finalB) abstractC) privateD) protected答案:A二、填空题(共5题,每题4分,共20分)1. 在Java中,创建对象的关键字是________。

答案:new2. 在Java中,使用关键字________定义了一个类的成员变量只能被本类的方法访问。

java面向对象试题及答案

java面向对象试题及答案

java面向对象试题及答案# Java面向对象试题及答案一、选择题1. 在Java中,以下哪个关键字用于定义类?- A. class- B. interface- C. enum- D. package答案:A2. 以下哪个是Java中的继承特性?- A. 一个类可以继承多个类- B. 类可以继承接口- C. 接口可以继承类- D. 接口可以继承多个接口答案:D3. 以下哪个是Java中封装的体现?- A. 使用public关键字- B. 使用private关键字- C. 使用static关键字- D. 使用final关键字答案:B4. 在Java中,哪个关键字用于实现多态?- A. abstract- B. final- C. override- D. implements答案:C5. 以下哪个是Java的构造方法的特点?- A. 可以有返回类型- B. 可以有多个同名的构造方法- C. 必须有返回类型- D. 必须与类名相同答案:D二、简答题1. 简述面向对象编程的三大特性,并给出Java中的例子。

面向对象编程的三大特性是封装、继承和多态。

- 封装:封装是将对象的实现细节隐藏起来,只暴露出一个可以被外界访问的接口。

例如,在Java中,可以通过使用private关键字来隐藏类的成员变量,只通过public方法来访问这些变量。

- 继承:继承允许新创建的类(子类)继承现有类(父类)的属性和方法。

例如,如果有一个`Animal`类,可以创建一个`Dog`类继承`Animal`类。

- 多态:多态允许同一个接口接受不同的数据类型。

在Java中,可以通过重写父类的方法来实现多态。

例如,`Animal`类有一个`makeSound()`方法,而`Dog`类可以重写这个方法来发出狗的叫声。

2. 解释Java中的接口和抽象类的区别。

接口和抽象类都是Java中实现抽象化的方式,但它们有以下区别: - 接口可以包含抽象方法和默认方法,但不能有具体实现。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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){
Test t = new Test();
t.x = 5; change(t);
System.out.println(t.x);
}
}
A 5
B 3
C 0
D 4
9、关于下列代码说法正确的是( )
public class A{
public void doit(){}
public String doit(){
return “a”;
}
public double doit(int x){
return 1.0;
}
}
A 无编译错误
B 代码public String doit(){ 行,出现编译错误
C 代码public double doit(int x){行,出现编译错误
D. 代码return “a”; 行处出现编译错误
10、下列代码的运行结果是()
String test = “This is a test”;
String[] tokens = test.split(“\\s”);
System.out.println(tokens.length);
A 0
B 1
C 3
D 4
11. 下列哪些数据类型不属于基本数据类型:()
A. boolean B int C. String D. short
12. 下列哪个写法是正确的:( )
A. boolean b = (boolean)3;
B. int a = (int)true;
C. int a = false;
D. long b = (long)3.14
13.下面哪个语句是正确的
A short s = 256;
B String s = …Hello world‟;
C int x = 12.5;
D char c = “a”;
14. Java 编译输出文件的后缀是( )
A .exe
B .java
C .class
D .obj
15. 如果类中的成员只能被子类或同一包中的类访问,那么声明该成员时应使用下面哪个修饰符
A private
B package
C protected
D public
16. import语句的作用是 ( )
A导入包中成员
B创建包
C既可导入包成员,也可创建包
D访问控制
17.下面哪些标识符是合法的
A s1
B $1
C _1
D 1s 18.下列有关Java语言的叙述中,正确的是 ( )
A、Java是不区分大小写的
B、源文件名与public类型的类名必须相同
C、源文件名其扩展名为.jar
D、源文件中public类的数目不限
19 定义一个接口必须使用的关键字是()
A、public B class C interface D static 20. void的含义:()
A.方法没有返回值 B.方法体为空
C.没有意义 D. 定义方法时必须使用
21.下列有关继承的说法。

正确的是:( )
A. 子类能继承父类的所有方法和属性
B. 子类能继承父类的非私有方法和属性
C. 子类只能继承父类public方法和属性
D. 子类能继承父类的方法,而不是属性。

22 设 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是( )。

A 3
B 3. 5
C 4
D 5
23 只有自己可以访问的访问控制符的是( )。

A. public
B. private
C. static
D. protected
24 在类的定义中可以有两个同名函数,这种现象称为函数()
A封装 B继承 C覆盖 D 重载25.下列可以被任何类访问的修饰符是()
A.private B.public C.protected D.final。

相关文档
最新文档