Java面向对象测试
使用Java实现面向对象编程 阶段测试 机试试卷与参考答案

一、语言和环境A、实现语言JavaB、环境要求JDK 6.0、MyEclipse7.5、Oracle10g、PL/SQL Developer二、功能要求开发基于控制台的留言板系统。
具体要求如下:(1)显示留言板系统主菜单,包括显示留言、添加留言和退出系统三项。
(2)显示所有留言信息:包括各条留言的留言人、留言时间、留言标题和留言内容。
(3)用户添加留言:需要输入留言人、留言标题、留言内容,留言时间取当前时间。
(4)退出系统。
系统运行界面如图-1所示。
三、类的设计采用DAO模式开发此系统,需要定义如下类留言实体类(Message)✧留言Id(id)✧留言人(userName)✧留言标题(title)✧留言内容(contents)✧留言时间(createTime)数据库连接和关闭类(BaseDao)留言DAO接口(MessageDao)留言DAO实现类(MessageDaoOracleImpl)留言业务类(MessageService)Main类四、具体要求及推荐实现步骤1、创建数据库表message,添加测试数据不少于2条。
2、创建序列messageSeq,用于实现message表的主键自增。
3、创建实体类Message,根据业务提供需要的构造方法和setter/getter方法。
4、创建BaseDao类,实现数据库连接和关闭功能。
5、创建DAO接口MessageDao,定义查询所有留言、添加留言的方法。
6、创建DAO实现类MessageDaoOracleImpl,继承BaseDao类,实现MessageDao接口,使用JDBC完成相应数据库操作。
7、创建业务类MessageService,完成在控制台显示留言信息和用户添加留言操作。
8、创建Main类,启动和运行系统。
图-1 系统运行界面一、选择题(2分/题)1. char a[3],b[] = "China"; a=b; System.out.print (""+a); 在java 语言中,运行上面的程序段后将输出(d )。
Java面向对象程序设计智慧树知到答案章节测试2023年

第一章测试1.下列选项中,可以正确配置classpath的命令是() A:set classpath=C:Files.0_15 B:classpath set : C:Files.0_15 C:classpath set =C:Files.0_15 D:set classpath : C:Files.0_15 答案:A2.在JDK安装目录下,用于存放可执行程序的文件夹是() A:bin B:db C:jreD:lib 答案:A3.下面关于Java程序的描述中,错误的是() A:不同操作系统上的Java虚拟机是相同的 B:Java程序运行时,必须经过编译和运行两个步骤。
C:.class 格式的文件是用来运行的 D:.java格式的源文件是用来编译的答案:A4.下列选项中,哪些选项用于构成JDK开发环境()。
A:Java运行工具B:Java编译工具 C:Java文档生成工具 D:Java打包工具答案:ABCD5.下列关于使用Javac命令编译后生成文件的说法中,正确的是() A:编译后生成文件的后缀名为.class B:编译后生成的文件可以在Java虚拟机中运行C:编译后生成的文件为二进制文件 D:编译后生成文件的后缀名为.java 答案:ABC6.下列目录中,哪些属于JDK安装后的子目录() A:jre目录 B:lib目录C:include目录 D:demo目录答案:ABC7.lib是library的缩写,用于存放Java类库或库文件。
( ) A:对 B:错答案:A8.如果classpath环境变量没有进行设置,Java虚拟机会自动将其设置为“.”,也就是当前目录。
( ) A:错 B:对答案:B9.在任意命令行窗口中执行javac命令,如果都能正常地显示帮助信息,说明系统path环境变量配置成功。
( ) A:对 B:错答案:A10.Eclipse只是一个框架和一组服务,所有功能都是将插件组件加入到Eclipse框架中来实现的。
Java面向对象测试题(一)

Java面向对象测试题(一)注:测试时间:3小时编程题在电脑上编写,保存在已学生名字为文件名的文件夹中一、选择题(共30分,每题1分<多选、少选、错选不得分>)1、下面有关Java异常处理模型的说法错误的是()。
a)一个try块只能有一条catch语句b)一个try块中可以不使用catch语句c)Catch块不能单独使用,必须始终与try块在一起d)Finally块不能单独使用,必须始终与try块在一起2、下列选项中关于Java中super关键字的说法错误的是()。
a)super关键字是在子类对象内部指代其父类对象的引用b)super关键字不仅可以指代子类的直接父类,还可以指代父类的父类c)子类可以通过super关键字调用父类的方法d)子类可以通过super关键字调用父类的属性3、下列选项中关于Java中this关键字的说法错误的是()。
a)this是在对象内部指代对象自身的引用b)this关键字可以在类中的任何位置使用c)this只和特定的对象关联,而不和类关联d)同一个类的不同对象有不同的this4、在Java中,Object类是所有类的父亲,用户自定义类默认扩展自Object类,下列选项中的()方法不属于Object类的方法。
a)equals(Object obj)b)getClass()c)toString()d)trim()5、给定如下Java代码,关于super的用法,以下描述正确的是()。
class C extends B{public C(){super();}}a)用来调用类B中定义的super()方法b)用来调用类C中定义的super()方法c)用来调用类B的无参构造方法d)用来调用类B中第一个出现的构造方法6、在Java中,有如下两个类Student和Person。
如果Student是Person的子类,则下列声明对象x的语句中错误的是()。
a)Person x = new Student()b)Person x = new Person()c)Student x = new Person()d)Student x = new Student()7、下列对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; 企鹅的名字是null,健康值是10,性别是雄。
B. 执行构造方法。
企鹅的名字是null,健康值是0,性别是null。
C. 企鹅的名字是null,健康值是0,性别是null。
JAVA考核题-面向对象选择题(答案)

北润JAVA考核-面向对象第一部分英语测试(每题分,共分)第二部分知识点测试(分)一、选择题(每题2分,共110分)1.下面关于变量及其作用范围的陈述哪个是不对的?(B )A.实例变量是类的成员变量。
B.实例变量用关键字static声明。
C.在方法中定义的局部变量在该方法被执行时创建。
D.局部变量在使用前必须被初始化。
2.下面哪条语句把方法声明为抽象的公共方法?(B )A.public abstract method(); B.public abstract void method();C.public abstract void method(){} D.public void method() extends abstract;3.若在某一个类定义中定义有如下的方法:final void aFinalFunction( ){}则该方法属于( C )。
A、本地方法B、静态方法C、最终方法D、抽象方法4.main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的( B )。
A、public static void main()B、public static void main(String[ ] args)C、public static int main(String[ ] args)D、public void main(String arg[ ])5.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。
这种面向对象程序的特性称为( C )。
A、隐藏B、覆盖C、重载D、Java不支持此特性6.下列关于构造方法的叙述中,错误的是(C )A.Java语言规定构造方法名与类名必须相同B.Java语言规定构造方法没有返回值,但不用void声明C.Java语言规定构造方法不可以重载D.Java语言规定构造方法只能通过new自动调用7.关于被私有访问控制符private修饰的成员变量,以下说法正确的是(C )A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类B.可以被两种类访问和引用:该类本身、该类的所有子类C.只能被该类自身所访问和修改D.只能被同一个包中的类访问8.类Test1定义如下:1. public class Test1{2.public floataMethod(float a, float b){}3.4.}将以下哪种方法插入行3是不合法的。
Java面向对象期末模拟试卷A

Java面向对象期末模拟试卷A分值100一、选择题(每小题2分,共40分)1.以下关于类的结构的说法正确的是()A.类只能包含一个构造方法B.类可以没有属性C.类只能包含方法D.类只能包含属性2.面向对象的特点是()A.继承、封装、多态 B.继承、接口、对象C.方法、继承、类 D.接口、继承、类3. 在java中,以定义了两个接口B和C,要定义一个实现这两个接口的类,以下语句的正确的是( )A.interface A extends B,CB.interface A implements B,CC.class A implements B,CD.class A implements B,implements C4.在Java中,关键字()使类不能派生出子类。
A.finalB.privateC.publicD.static5.在Java中,下面关于抽象类的描述正确的是( )。
A.抽象类可以被实例化B.抽象类里面一定有抽象方法C.抽象类中的方法必须都是抽象的D.声明抽象类必须带有关键字abstract6. 给定java代码,如下,编译运行后,结果是 ( )。
public class Test{static String s;public static void main(String args[ ]){char c=s.charAt(0);System.out.println(c);}}A. 编译错误B. 运行期异常,异常类型为 NullpointerExceptionC. 运行期异常,异常类型为 ArithmeticExceptioinD. 运行正常,但无输出内容7.下面程序运行结果为:()public class Test{public static void main(String[] args){new Test().test();}public void test(){try{System.out.print("try");}catch(Exception ex){System.out.print("catch");}finally{System.out.print("finally");}}}A. tryB. try catchC. try finallyD. try catch finally8. 关于继承的说法正确的是()A.子类将继承父类所有的属性和方法。
面向对象测试题及答案

面向对象测试题及答案一、选择题(每题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面向对象试题

OOP考试题考试时间:120分钟考试总分:100分一、选择题(不定项选择)(2分/题*37 = 74分)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() 100B() 200B.A() 200B() 200C.B() 200A() 100D.B() 200A() 2002.程序执行的结果是:()。
public class Point{int y = 7;public void step(int y) {y += y;System.out.println(y);}public static void main(String[] args) { Point p = new Point();p.step(10);}}A.14B.20C.10D.173.下面代码运行的结果是()class F{String name = “name_F”;private int age;public F(){}}class C extends F{String name = “name_C”;public C(){}public static void main(String[] args){F f = new C();C c = new C();System.out.println( +”“+); }}_C name_C_C name_F_F name_C_F name_F4.(单选题)程序的执行结果是:()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java面向对象测试Java基础知识单元测试一、选择题(30分)1.下列程序段执行后的输出结果为()int x=3;int y=10;System.out.println(y%x);A.0B.1C.2D.32.下列程序的输出结果是()public class Test{void printValue(int m){do {System.out.println("The value is"+m); }while(--m > 10 );}public static void main(String arg[]){int i=10;Test t= new Test();t.printValue(i);}}A.8B.9C.10D.1133.执行完语句int []x = new int[25];后,则下列哪项说法是正确的()A.x[24]值为0B.x[24]值未定义C.x[25]值为0D.x[0]值为空4.下列哪个选项是合法的标识符()A)123B)_nameC)classD)1first5.下列的哪个赋值语句是不正确的()A)float f = 11.1;B)double d = 5.3E12;C)float d = 3.14f ;D)double f=11.1E10f;6.下列关于继承的哪项叙述是正确的?()A)在java中允许多继承B)在java中一个类只能实现一个接口C)在java中一个类不能同时继承一个类和实现一个接口D)java的单一继承使代码更可靠7.有一个类A,对于其构造函数的声明正确的是( )。
A)void A(int x){...} B)A(int x){...}C)A A(int x){...} D)int A(int x){...}8.一个可以独立运行的Java应用程序( ) **A、可以有一个或多个main方法B、最多只能有两个main方法C、可以有一个或零个main方法D、只能有一个main方法9.以下对Java中对数组的声明正确的是()**A int [] sample;B int sample[]C int () sample;D int sample();10.设int x = 3 , y = 2 , z = 5;则表达式y+=z--/++x 的值是( )。
A. 3B. 4. 5C. 3.5D. 411.类Test1定义如下:(1) public class Test1{(2) public void aMethod(float a,float b){ };(3)(4) }将以下哪种方法插入第3行是不合理的?()A. public void aMethod(int a,int b){ };B. public void aMethod(float a,float b,float c){ };C. public void aMethod(float c,float d){ };D. private void aMethod(int a,int b,int c){ };12. JDK中运行Java小程序的命令是()。
A. javadocB. appletviewerC. javacD. java13.下列叙述中,正确的是:()A声明变量时必须指定一个类型B、Java认为变量名number和Number相同C、Java中唯一的注释方式是“//”D、源文件中public类可以有0或多个14.在switch(expression)语句中,expression的数据类型不能是:A、doubleB、charC、byteD、short15.已知int[] a =new int[100];,在下列给出的数组元素中,非法的是:( )A、a[0]B、a[1]C、a[99]D、a[100]16.设x,y 均为已定义的类名,下列声明对象x1的语句中正确的是( )。
A、public x x1= new y( );B、x x1=x( );C、x x1=new x( );D、int x x1;17.Java语言的类间的继承关系是( )。
A、多重的B、单继承C、线程的D、不能继承18.下面关于java中类的说法哪个是不正确的()A、类体中只能有变量定义和成员方法的定义,不能有其他语句。
B、构造函数是类中的特殊方法。
C、类一定要声明为public的,才可以执行。
D、一个java文件中可以有多个class定义(但只能有一个Public修饰的类)。
19.给出一段程序,选择运行结果()public class sss {public static void main(String args[]){String s1=args[1]; String s2=args[2];String s3=args[3]; String s4=args[4];System.out.println(“args[2]=”+s2);}}命令行执行:java sss 1 2 3 4 结果是下面哪一个?A、args[2]=2B、args[2]=nullC、args[2]=3D、运行出现异常20.public class T1 {public static void main (String[] args){T1 a=new T1();a.method(8);a.method(1.2f);}void method(float i) {System.out.println("float: "+i);}void method(long i) {System.out.println("long: "+i);}}以下说法错误的是:()A、程序有编译错误,因为两个method()方法必须定义为静态(static)的。
B、程序可以编译运行,输出结果为:long: 8float: 1.2C、程序可以编译运行,输出结果为:float: 1.2long: 8D、程序中定义的两个参数不同的method方法称为方法重载。
21.编译并运行下面的程序,运行结果为( ).**public class A {public static void main (String[] args) {A a=new B( );a.test();}void test() {System.out.print ("A");}}class B extends A {void test() {super.test();System.out.println("B");}}A、子类B定义了与父类A中同名的方法test,java中称为方法的覆盖。
B、代码可以编译运行,并输出结果:ABC、代码可以编译运行,并输出结果:A。
D、子类B定义了与父类A中同名的方法test,java中称为方法的重载22.下面哪个说法正确( ) **A、如果某公共的接口被声明在一个源文件中,则接口必须与源文件具有相同的名字。
*B、如果源文件包含import语句,则该语句必须是除空行和注释行外的第一个语句行。
C、如果某源文件包含package语句,则该语句必须是第一个非空、非注释行。
D、接口中的方法必定是抽象方法,但可以不用关键字abstract 修饰。
23.类的设计要求它的某个成员变量不能被外部类直接访问。
应该使用下面的哪些修饰符获得需要的访问控制?()A、publicB、no modifierC、protected(权限仅次于public)D、private24.类Teacher和Student都是类Person的子类Person p;Teacher t;Student s;p, t and s are all non-null.if(t instanceof Person) { s = (Student)t; }这个语句导致的结果是什么?A、将构造一个Student对象。
B、表达式合法。
C、编译时非法。
D、编译时合法而在运行时可能非法。
25.给出下面的代码:class Person {String name,department;public void printValue(){System.out.println("name is "+name);System.out.println("department is "+department);}}public class Teacher extends Person {int salary;public void printValue(){// doing the same as in the parent method printValue()// including print the value of name and department.System.out.println("salary is "+salary);}}下面的哪些表达式可以加入printValue()方法的"doing the same as..."部分?()A、printValue();B、this.printValue();C、person.printV alue();D、super.printValue().26.以下是接口的定义的是:()A,接口中定义的变量都是公共的静态变量B, 没有构造函数,而且定义的方法都是公共的抽象方法C, 接口间采用单继承机制D, 接口可以实例变量和常量,实例常量语法是;public static 标示符名称27.包含抽象方法的类:()A, 一定是抽象类B,可以是抽象类也可以不是抽象类C,肯定不是抽象类28.那些父类成员不能被继承:()A,private成员B,构造方法C,public成员D,getter和setter成员29.方法重写规则:()A,在继承关系的子类中B,重写的方法名,返回值类型,参数与父类不相同C,私有属性,成员可以被重写30.关于构造方法,下列说法错误的是()A,构造方法可以进行方法重写B,构造方法用来初始化该类的一个新对象C,构造方法具有和类名相同的名称D,构造方法不返回任何数据类型二、程序分析题(18分)1.设有数组定义:int a[]= { 11 , 22 , 33 , 44 , 55 , 66 , 77 , 88 , 99 }; 则执行下列几个语句后的输出结果是for (int i = 0 ; i < a.length ; i ++ ){if(a[i]%3==0 )System.out.println(a[i]+" ");}2.执行下列几个语句后的输出结果是class FatherClass{public FatherClass(){System.out.println("FatherClass Create");}}public class ChildClass extends FatherClass { public ChildClass() {System.out.println("ChildClass Create");}public static void main(String[] args) {FatherClass fc = new FatherClass();ChildClass cc = new ChildClass();}}3.应用程序由以下语句组成,写出执行该程序后输出的结果public class x{public static void main(String args[ ]){int i , sum = 0 ;int a[ ] = { 1 , 2 , 3 , 4 , 5 , 6 };for ( i = 0 ; i < a.length ; i ++ ){if ( a[i]%2 = = 0 )sum += a[i] ;}System.out.println("sum="+sum);}}4. 应用程序由以下语句组成,写出执行该程序后输出的结果import java.io.* ;public class A{public static void main(String args[]){ int i ;int a []= { 10,20,30,40,50,60,70,80,90 };for (i = 0 ; i <= a.length / 2 ; i ++ )System.out.print(a[i]+a[a.length-i-1]+" " );}}5.应用程序由以下语句组成,写出执行该程序后输出的结果public class x{public static void main(String args[]){int num=0;for(int i=10;i<=50;i++)if(i%10==5 && i%3 ==0)num++;System.out.println("共有"+num+"个");}}6.应用程序由以下语句组成,写出执行该程序后输出的结果** public class Jtest{int m=1;int i=3;void Jtest() //方法名可以与类名相同{m=2;i=4;}public static void main(String[] args){Jtest app=new Jtest();System.out.println(app.m+","+app.i);}}7.应用程序由以下语句组成,写出执行该程序后输出的结果public class Jtest{int m=1;int i=3;Jtest(){m=2;i=4;}public static void main(String[] args) {Jtest app=new Jtest();System.out.println(app.m+","+app.i); }}8.请写出程序的运行结果**class Tester {int var;Tester(double var) {this.var = (int)var;}Tester(int var) {this("hello");}Tester(String s) {this();System.out.print (s);}Tester() {System.out.print("goodbye");}public static void main(String[] args) { Tester t = new Tester(5);}}三、填空题(4分)1.在Java程序中,通过类的定义只能实现单继承,但通过的定义可以实现多继承关系。