2012-2013java面向对象期末测试题(带答案)
2012-2013java面向对象期末测试题(带答案)

济南大学2009~2010 学年第二学期课程考试试卷课 程 java 面向对象程序设计 授课教师 考试时间 考试班级 学 号 姓 名 题号 一 二 三 四 五 总 分 审核人 得分 一、填空题(每空2分,共20分) 1.Java 源程序的扩展名是 .java ,经过编译后的程序的扩展名是 .class 。
2.Socket 通常也称为 套接字 ,用于描述 IP 地址 和 端口 。
3.线程的优先级在 1 至 10 之间,数值越大 优先级越高 4.构造方法是一种特殊的成员方法,构造方法名与 类名 相同 5.Java 语言只允许单继承,指每个类只能有一个 父类或子类 。
二、选择题(每题2分,共50分) 1.下列哪个概念是面向对象和面向过程程序设计所共有的 ( B ) A 、继承 B 、流程控制 C 、抽象 D 、封装 2.以下关于执行Java 小程序的论述错误的是: ( C ) A 、可以通过浏览器调用嵌入了Java 小程序的HTML 文档 B 、可以通过appletviewer .exe 调用嵌入了Java 小程序的HTML 文档 C 、可以通过java.exe 调用嵌入了Java 小程序的HTML 文档 D 、可以在Java 集成开发环境中调用嵌入了Java 小程序HTML 文档 3.符合对象和类关系的是: ( D ) A 、人和老虎 B 、书和汽车 C 、楼和土地 D 、松树和植物4.关于选择结构下列哪个说法正确? (B )A .if 语句和 else 语句必须成对出现B .if 语句可以没有else 语句对应 …………………………………………装…………………………订…………………………线…………………………………………C.一个if语句只能有一个else if语句与之对应D.else if结构中必须有default语句5.while循环和do…while循环的区别是:(D)A.没有区别,这两个结构任何情况下效果一样B.while循环比do…while循环执行效率高C.do…while循环执行次数可能为0D.while循环执行次数可能为06.关于for循环和while循环的说法哪个正确?(B)A.while循环先判断后执行,for循环先执行后判断。
Java面向对象程序设计期末复习试题(附解析)

JAVA面向对象程序设计复习试题+解析1)在JAVA编程中,关于Font下列()是正确的。
(选择两项)a)在我们的程序中可以使用Font类中定义的字体常量。
b)我们可以使用Tookit类中的函数来获取我们的机器中java所支持的字体的列表c)我们可以自己创建字体实例对象d)以上说明都正确【解析】参考答案:A BFont属于java.awt包中的一个类,专门用来设置程序中的字体实例对象。
创建Font类的对象时使用的方法:getFont(int face,int style,int size);例如:Font font = Font.getFont(Font.FACE_SYSTEM,Font.STYLE_BOLD,Font. SIZE_MEDIUM);无论哪一个参数,都只能使用系统设置的数值,这些数值具体的大小在不同的手机上可能不同。
下面对于其中的三个参数的取值做详细的介绍:face参数指字体的外观;style参数指字体的样式;size参数指字体的大小。
这三个参数都是系统中定义好的一些常量。
获得系统的默认字体:Font font = Font.getDefaultFont();ToolKit类是 Abstract Window Toolkit 的所有实际实现的抽象父类。
Toolkit 用于把各种组件绑定到特定的本地工具箱实现上。
该类有个方法getFontList()用于返回该工具箱中可用字体名。
也就是可以获取机器中java所支持的字体的列表。
2)在Java语言中,在包Package1中包含包Package2,类Class_A直接隶属于包Package1,类Class_B直接隶属于包Package2。
在类Class_C要应用Class_A的方法A和Class_B 的方法B,你需要()语句。
(选择两项)a)import Package1.*;b)import Package1.Package2.*;c)import Package2.*d)import Package2.Package1.*;【解析】A BJava语言中的包机制就像Windows中的文件夹,用来归类类文件的位置。
面向对象测试题及答案

面向对象测试题及答案一、选择题(每题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`方法以显示电动汽车启动的信息。
面向对象期末考试题及答案

面向对象期末考试题及答案一、选择题(每题2分,共20分)1. 面向对象编程中的三大特性是?A. 封装、继承、多态B. 抽象、继承、封装C. 继承、封装、多态D. 封装、抽象、多态答案:A2. 在Java中,哪个关键字用于定义类?A. classB. structC. typeD. interface答案:A3. 以下哪个不是面向对象设计原则?A. 单一职责原则B. 开闭原则C. 里氏替换原则D. 模块化原则答案:D4. 在面向对象编程中,构造函数的作用是什么?A. 用于创建对象B. 用于销毁对象C. 用于实现继承D. 用于实现多态答案:A5. 以下哪个是Java中的访问修饰符?A. privateB. publicC. protectedD. 全部都是答案:D...(此处省略剩余选择题)二、简答题(每题10分,共30分)1. 简述面向对象编程的基本思想。
答案:面向对象编程是一种编程范式,它将现实世界中的实体抽象成对象,这些对象具有属性和行为。
面向对象编程的基本思想是将数据和处理数据的方法结合在一起,形成对象。
通过对象之间的交互来实现程序的功能。
2. 解释什么是多态性,并给出一个简单的例子。
答案:多态性是指允许不同类的对象对同一消息做出响应,但具体的行为会根据对象的实际类型而有所不同。
例如,在Java中,可以通过重载和重写来实现多态。
假设有一个动物类Animal,它有一个方法makeSound()。
然后有一个子类Dog,它重写了makeSound()方法。
当我们创建一个Dog对象并调用makeSound()时,会执行Dog类中的makeSound()方法,而不是Animal类中的。
3. 什么是封装?封装的好处是什么?答案:封装是将对象的数据(属性)和行为(方法)组合在一起,并隐藏对象的内部细节,只暴露出一个可以被外界访问的接口。
封装的好处包括:保护数据、减少错误、提高代码的重用性、增强模块化。
三、编程题(每题25分,共50分)1. 编写一个Java程序,实现一个简单的银行账户类Account,包含以下特性:- 私有属性:账户余额balance- 公共方法:存款deposit(double amount)、取款withdraw(double amount)、获取余额getBalance()答案:```javapublic class Account {private double balance;public Account() {this.balance = 0;}public void deposit(double amount) {if (amount > 0) {balance += amount;}}public void withdraw(double amount) {if (amount > 0 && balance >= amount) {balance -= amount;}}public double getBalance() {return balance;}}```2. 假设有一个名为Car的类,它有两个属性:品牌brand和颜色color。
《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案4

《面向对象程序设计JA V A语言程序设计》期末考试试题及部分答案1一、单选题:(每题1分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在题干后的括号内。
1.下列语句序列执行后,k 的值是(B )。
int m=3, n=6,k=0;while((m++) < (-— n))++k;A)0 B)1 C) 2 D)32.设i、j 为int型变量名,a 为int型数组名,以下选项中,正确的赋值语句是(B )。
A)i = i + 2 B)a[0]= 7;C)i++ — --j;D)a(0)= 66;3.Java语言的类间的继承关系是(B )。
A)多重的B)单重的C)线程的D)不能继承4.设有定义int i = 6 ;,则执行以下语句后,i 的值为(C )。
i += i - 1;A) 10 B)121 C) 11 D) 1005.下列选项中,用于在定义子类时声明父类名的关键字是( C )。
A)interface B)package C) extends D) class6.若已定义byte[ ] x= {11,22,33,-66};其中0≤k≤3,则对x数组元素错误的引用是( C )。
A)x[5—3]B)x[k] C) x[k+5] D)x[0]7.下列语句序列执行后,ch1 的值是( B )。
char ch1=’A’,ch2=’W’;if(ch1 + 2 〈ch2 )++ch1;A)‘A' B) ‘B’ C) ‘C' D) B8.下列语句序列执行后,i 的值是(D )。
int i=8,j=16;if( i-1 〉j )i—-;else j——;A)15 B) 16 C) 7 D)89.下列语句序列执行后,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) 32 C)2 D)3310.下面语句执行后,i 的值是(B )。
java面向对象考试题及答案

java面向对象考试题及答案一、选择题(每题2分,共10分)1. 在Java中,以下哪个关键字用于定义一个类?A. classB. structC. interfaceD. enum答案:A2. 以下哪个选项是Java中类的成员变量?A. 方法B. 构造函数C. 属性D. 包答案:C3. 在Java中,哪个关键字用于实现类的继承?A. extendsB. implementsC. importD. package答案:A4. 在Java中,以下哪个关键字用于定义一个接口?A. classB. structC. interfaceD. enum答案:C5. 在Java中,以下哪个关键字用于定义一个枚举类型?A. classB. structC. enumD. interface答案:C二、填空题(每题2分,共10分)1. 在Java中,一个类可以继承另一个类的______方法。
答案:public2. 当一个类实现了一个接口,它必须提供接口中所有方法的______实现。
答案:具体3. Java中的______关键字用于定义一个包。
答案:package4. 在Java中,______关键字用于声明一个方法,该方法没有返回值。
答案:void5. 在Java中,______关键字用于声明一个方法,该方法返回一个布尔值。
答案:boolean三、简答题(每题5分,共20分)1. 简述Java中构造函数的作用。
答案:构造函数是类的特殊方法,用于在创建对象时初始化对象的状态。
它具有与类同名的名称,并且没有返回类型。
2. 描述Java中接口和抽象类的区别。
答案:接口是完全抽象的,不能包含任何实现细节,而抽象类可以包含实现细节。
接口中的方法默认是public和abstract的,而抽象类可以有非抽象方法。
一个类可以实现多个接口,但只能继承一个抽象类。
3. 什么是Java中的多态性?请举例说明。
答案:多态性是指允许不同类的对象对同一消息做出响应的能力。
java面向对象程序设计期末考试题及答案

java面向对象程序设计期末考试题及答案一、单项选择题(每题2分,共20分)1. 在Java中,哪个关键字用于声明一个类?A. classB. structC. interfaceD. enum答案:A2. 下列哪个是Java中的访问修饰符?A. publicB. privateC. protectedD. All of the above答案:D3. 在Java中,哪个关键字用于创建对象?A. newB. createC. makeD. instantiate答案:A4. Java中的继承是通过哪个关键字实现的?A. extendsB. inheritC. deriveD. superclass答案:A5. 在Java中,哪个关键字用于实现接口?A. implementsB. extendsC. interfaceD. abstract答案:A6. 下列哪个不是Java中的方法重载的条件?A. 方法名相同B. 参数列表不同C. 返回值类型不同D. 访问修饰符不同答案:C7. 在Java中,哪个关键字用于声明一个抽象方法?A. abstractB. virtualC. overrideD. final答案:A8. Java中的多态性可以通过哪种方式实现?A. 方法重载B. 方法覆盖C. 接口实现D. 继承答案:B9. 在Java中,哪个关键字用于声明一个内部类?A. innerB. nestedC. staticD. inner class答案:B10. Java中的垃圾回收机制是自动的吗?A. YesB. NoC. SometimesD. Depends on the JVM答案:A二、填空题(每题2分,共20分)1. Java中,一个类可以继承另一个类的______方法和属性。
答案:非私有2. Java中的______关键字用于声明一个类是不可被继承的。
答案:final3. 在Java中,______关键字用于声明一个类是抽象的。
JAVA面向对象程序设计(期末考试试题及答案)

程序设计(期末考试试题及答案)JAVA面向对象面向对象程序设计一、单选择题1、编译Java Application源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B)。
A.javaB..classC.htmlD..exe2、不允许作为类及类成员的访问控制符的是(C)。
A.publicB.privateC.staticD.Protected3、设x=1,y=2,z=3,则表达式y+=z--/++x的值是(A)。
A.3B.3.5C.4D.54、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为(A)。
A.static void method()B.public void method()C.final void method()D.abstract void method()5、下列属于容器的组件有:(B)A.JButton B.JPaneC.Canvas D.JTextArea6、v oid的含义:(C)A.方法体为空B.定义的方法没有形参C.定义的方法没有返回值 D.方法的返回值不能参加算术运算7、关于Java中异常的叙述正确的是:(D)A.异常是程序编写过程中代码的语法错误B.异常是程序编写过程中代码的逻辑错误C.异常出现后程序的运行马上中止D.异常是可以捕获和处理的8、下面哪个不是java语言中的关键字?(B)A.longB.sizeofC.instanceofD.Const9、在复选框中移动鼠标,然后单击一选项,要捕获所选项必需实现哪个接口?(D)A.ActionListenerB.MouseListenerC.MouseMotionListernD.ItemListener10、以下有关类的继承的叙述中,正确的是:(D)A子类能直接继承父类所有的非私有属性,也可通过接口继承父类的私有属性B.子类只能继承父类的方法,不能继承父类的属性C.子类只能继承父类的非私有属性,不能继承父类的方法D.子类不能继承父类的私有属性二、填空题1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释运行字节码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
济南大学2009~2010 学年第二学期课程考试试卷课 程 java 面向对象程序设计 授课教师 考试时间 考试班级 学 号 姓 名 题号 一 二 三 四 五 总 分 审核人 得分 一、填空题(每空2分,共20分) 1.Java 源程序的扩展名是 .java ,经过编译后的程序的扩展名是 .class 。
2.Socket 通常也称为 套接字 ,用于描述 IP 地址 和 端口 。
3.线程的优先级在 1 至 10 之间,数值越大 优先级越高 4.构造方法是一种特殊的成员方法,构造方法名与 类名 相同 5.Java 语言只允许单继承,指每个类只能有一个 父类或子类 。
二、选择题(每题2分,共50分) 1.下列哪个概念是面向对象和面向过程程序设计所共有的 ( B ) A 、继承 B 、流程控制 C 、抽象 D 、封装 2.以下关于执行Java 小程序的论述错误的是: ( C ) A 、可以通过浏览器调用嵌入了Java 小程序的HTML 文档 B 、可以通过appletviewer .exe 调用嵌入了Java 小程序的HTML 文档 C 、可以通过java.exe 调用嵌入了Java 小程序的HTML 文档 D 、可以在Java 集成开发环境中调用嵌入了Java 小程序HTML 文档 3.符合对象和类关系的是: ( D ) A 、人和老虎 B 、书和汽车 C 、楼和土地 D 、松树和植物4.关于选择结构下列哪个说法正确? (B )A .if 语句和 else 语句必须成对出现B .if 语句可以没有else 语句对应 …………………………………………装…………………………订…………………………线…………………………………………C.一个if语句只能有一个else if语句与之对应D.else if结构中必须有default语句5.while循环和do…while循环的区别是:(D)A.没有区别,这两个结构任何情况下效果一样B.while循环比do…while循环执行效率高C.do…while循环执行次数可能为0D.while循环执行次数可能为06.关于for循环和while循环的说法哪个正确?(B)A.while循环先判断后执行,for循环先执行后判断。
B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果C.两种循环任何时候都不可以替换D.两种循环结构中都必须有循环体,循环体不能为空7.下列修饰符中与访问控制无关的是(D)A.private B.publicC.protected D.final8.方法内的形参:(B)A.必须定义多个形参B.可以没有C.至少有一个D.只能是简单变量9.throws的作用:(A)A.表示方法可能会抛出例外B.表示后面是方法的输出量C.方法的标志,每个方法都必须有D.没有意义10.在Java语言中,整型常量123占用的存储字节数是:(C)A.1B.2C.4 D.811.关于对象成员占用内存的说法哪个正确?(B)A.同一个类的对象共用同一段内存B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间C.对象的方法不占用内存D.以上都不对12.return语句:(C)A.只能让方法返回数值B.方法都必须含有C.方法中可以有多句return D.不能用来返回对象13.下列说法哪个正确?(C)A、一个程序可以包含多个源文件B、一个源文件中只能有一个类C、一个源文件中可以有多个公共类D、一个源文件只能供一个程序使用14.关于方法main()的说法哪个正确?(C)A.方法main()只能放在公共类中B.main()的头定义可以根据情况任意更改C.一个类中可以没有main()方法D.所有对象的创建都必须放在main()方法中15.构造函数何时被调用?(A)A、创建对象时B、类定义时C、使用对象的方法时D、使用对象的属性时16.抽象方法:(c)A、可以有方法体B、可以出现在非抽象类中C、是没有方法体的方法D、抽象类中的方法都是抽象方法17.关于继承的说法正确的是:(B)A、子类将继承父类所有的属性和方法。
B、子类将继承父类的非私有属性和方法。
C、子类只继承父类public方法和属性D、子类只继承父类的方法,而不继承属性18.关于构造函数的说法哪个正确?(C)A、一个类只能有一个构造函数B、一个类可以有多个不同名的构造函数C、构造函数与类同名D、构造函数必须自己定义,不能使用父类的构造函数19.关于super的说法正确的是:BA、是指当前对象的内存地址B、是指当前对象的父类对象的内存地址C、是指当前对象的父类D、可以用在main()方法中20.覆盖与重载的关系是(A)A、覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中B.覆盖方法可以不同名,而重载方法必须同名C.final修饰的方法可以被覆盖,但不能被重载D.覆盖与重载是同一回事21.下列关于finally的说法正确的是?(C)A.无论程序是否找到合适的例外控制器,都会去执行finally语句B.finally语句应该放在所有例外控制器的最前面C.如果程序在前面的例外控制器中匹配到了合适例外,就不再执行finally语句D.如果程序在前面的例外控制器中匹配到了多个合适的例外,就不再执行finally语句22.对于已经被定义过可能抛出例外的语句,在编程时:(A)A、必须使用try/catch语句处理例外,或用throws将其抛出B.如果程序错误,必须使用try/catch语句处理例外C.可以置之不理D.只能使用try/catch语句处理23.下列哪个关键字用于实现接口(A)A.implements B.implementC. importD. imports24.字符流与字节流的区别在于(B)A.前者带有缓冲,后者没有B.前者是块读写,后者是字节读写C. 二者没有区别,可以互换使用D. 每次读写的字节数不同25.下列流中哪个不属于字符流(D)A.InputStreamReaderB.BufferedReaderC. FilterReaderD. FileInputStream三、程序阅读与填空题(每题6分,共30分)1. 阅读程序给出结果下列程序段用来计算Fibonacci序列的第0,1,2,…各项public class Fibonacci {public static void main(String args[]) {System.out.println("Fibonacci 第4项="+(1)fib(3));}static int fib(int n) {if (n==0||n==1) {return n;}else {int sum=fib(n-1)+fib(n-2);return sum;}}}输出结果为:(2)22. 多线程CPU调度// TwoThreads.java源代码如下:public class TwoThreadsDemo{public static void main(String[] args){new SimpleThread("Cat"). Run()(1);new SimpleThread("Mouse"). Run()(2);}}class SimpleThread extends Thread{public SimpleThread(String str){super(str);}public void run(){for (int i=0;i<10;i++){System.out.println(i+" "+getName());try{sleep((long)(Math.random()*1000));}catch (InterruptedException e){}}System.out.println("DONE! "+getName());}}3. 按注释提示完成文件复制的程序//FileStream源代码如下:import java.io.*;class FileStream {public static void main(String args[]) {try{File inFile=new File("file1.txt"); //指定源文件File outFile=new File("file2.txt"); //指定目标文件FileInputStream fis=(1)new FILEinputSream(infile);FileOutputStream fos=new FileOutputStream(outFile);int c;//逐字节从源文件中输入,再输出到fos流while((c=fis.read())!=-1)(2)fos.write(fis,0,c) ;fis.close();fos.close();}catch(Exception e) {System.out.println("FileStreamsTest: "+e);}}}4. 阅读程序,给出结果//B.java源代码如下:class A{int x=100;}class B extends A{int x=200;void prt(){System.out.println("SubClass: "+x);System.out.println("SuperClass: "+super.x);}public static void main(String args[]){new B().prt();}}输出结果是(1)200(2)1005. 阅读程序,给出结果:// AbstractClassDemo.java源代码如下:abstract class Shape { //定义抽象类Shape和抽象方法displayabstract void display();}class Circle extends Shape {void display() { //实现抽象类的方法System.out.println("Circle");}}class Rectangle extends Shape {void display() { System.out.println(“Rectangle”) //实现抽象类的方法System.out.println("Rectangle");}}class Triangle extends Shape {void display() { //实现抽象类的方法System.out.println("Triangle");}}public class AbstractClassDemo{public static void main(String args[]){(new Circle()).display(); //定义无名对象来调用对应的display方法(new Rectangle()).display();(new Triangle()).display();}}输出结果是:(1)circle(2)rctanglee(3)triangle。