Java基础部分面向对象选择题1、阅读下列程序:publicclassTest{publicstaticvoidmain(String[]args){Stringfoo=args[1];Stringbar=args[2];Stringbaz=args[3];System.out.printIn(“baz=”+baz);}}输出结果是:baz=2给出的四个命令参数中,哪一个可以得出正确的输出结果()。A.JavaTest2222B.JavaTest1232C.JavaTest4223D.JavaTest432122、分析如下所示的Java代码,其中this关键字的意思是()。publicclassTest{privateStringname;publicStringgetName(){returnname;}publicvoidsetName(Stringname){this.name=name;//this关键字所在的行}}A.name属性B.Test类的内部指代自身的引用C.Test类的对象引用Test类的其他对象D.指所在的方法3、在Java中,下面对于构造函数的描述正确的是()。A.类必须显式定义构造函数B.构造函数的返回类型是voidC.构造函数和类有相同的名称,并且不能带任何参数D.一个类可以定义多个构造函数4、下列选项中关于Java中封装的说法错误的是()。A.封装就是将属性私有化,提供公有的方法访问私有属性B.属性的访问方法包括setter方法和getter方法C.setter方法用于赋值、getter方法用于取值D.类的属性必须进行封装,否则无法通过编译5、下列选项中关于Java中super关键字的说法错误的是()。A.super关键字是在子类对象内部指代其父类对象的引用B.super关键字不仅可以指代子类的直接父类,还可以指代父类的父类C.子类可以通过super关键字调用父类的方法D.子类可以通过super关键字调用父类的属性6、构造函数何时被调用()A、创建对象时B、类定义时C、使用对象的方法时D、使用对象的属性时7、给定如下一个Java源文件Child.java,编译并运行,以下结果正确的是()。classParent1{Parent1(Strings){System.out.println(s);}}classParent2extendsParent1{Parent2(){System.out.println(parent2);}}publicclassChildextendsParent2{publicstaticvoidmain(String[]args){Childchild=newChild();}}A.编译错误:没有找到构造器Child()B.编译错误:没有找到构造器Parent1()C.正确运行,没有输出值D.正确运行,输出结果为:parent9、阅读下列程序classBaseClass{privatefloatx=1.0f;protectedvoidsetVar(floatf){x=f;}}classSubClassextendsBaseClass{privatefloatx=2.0f;//代码插入行}以下哪个选项是对父类函数正确的覆盖?()A.VoidsetVar(floatf){x=f;}B.PublicvoidsetVar(intf){x=f;}C.PublicvoidsetVar(floatf){x=f;}D.PublicdoublesetVar(floatf){x=f;}10、方法的重载必须满足的条件是()A、参数的个数不同,或者是参数的类型不同B、参数的顺序不同C、方法的名字不同D、返回类型不同12、看下面一段程序:classAclass{voidgo(){System.out.println(Aclass);}}publicclassBclassextendsAclass{voidgo{System.out.println(Bclass);}publicstaticvoidmain(Stringargs[]){Aclassa=newAclass();Aclassa1=newBclass();a.go();a1.go();}}以上程序运行结果是()A、AclassB、BclassAclassBclassC、AclassD、BclassBclassAclass13、设有下面两个赋值语句:a=Integer.parseInt(“1024”);b=Integer.valueOf(“1024”).intValue();下述说法正确的是()。A、a是整数类型变量,b是整数类对象。B、a是整数类对象,b是整数类型变量。C、a和b都是整数类对象并且它们的值相等。D、a和b都是整数类型变量并且它们的值相等。15、类的设计要求它的某个成员变量不能被外部类直接访问,应该使用下面的哪些修饰符获得需要的访问控制()?A、publicB、defaultC、protectedD、private16、编译JavaApplication源程序文件产生的字节码文件的扩展名为()。A、javaB、classC、htmlD、exe17、关于方法main()的说法哪个正确()A、方法main()只能放在公共类中B、main()的头定义可以根据情况任意更改C、一个类中可以没有main()方法D、所有对象的创建都必须放在main()方法中18、运行下列程序的结果是哪个()abstractclassMineBase{abstractvoidamethod();staticinti;}publicclassMineextendsMineBase{publicstaticvoidmain(Stringargs[]){int[]ar=newint[5];for(i=0;iar.length;i++)System.out.println(ar[i]);}}A、打印5个0。B、编译出错,数组ar[]必须初始化。C、编译出错,Mine应声明为abstract。D、出现IndexOutOfBoundes的例外。19、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为()A、staticvoidmethod()B、publicvoidmethod()C、finalvoidmethod()D、abstractvoidmethod()20.设有下面两个类的定义:classPerson{longid;//身份证号Stringname;//姓名}classStudentextendsPerson{intscore;//入学总分intgetScore(){returnscore;}}问:类Person和类Student的关系是()A、包含关系B、继承关系C、关联关系D、无关系,上述类定义有语法错误21.下列描述正确的是()A、多态性就是指子类的某个方法被其父类重写时,可以各自产生自己的功能行为。B、多态性就是指子类的某个方法被其父类重写时,不能各自产生自己的功能行为。C、多态性就是指父类的某个方法被其子类重写时,可以各自产生自己的功能行为。D、以上都不对22.下列哪个关键字用于实现接口()A、implementsB、implementC、importD、imports23.现有两个类A、B,以下描述中表示B继承自A的是()A、classAextendsBB、classBimplementsAC、classAimplementsBD、classBextendsA24.对于下列代码:publicclassParent{publicintaddValue(inta,intb){ints;s=a+b;returns;}}classChildextendsParent{}下述哪些方法可以加入类Child可以实现覆盖()A、intaddValue(inta,intb){//dosomething...}B、publicvoidaddValue(inta,intb){//dosomething...}C、publicintaddValue(inta){//dosomething...}D、publicintaddValue(inta,intb)throwsMyException{//dosomething...}25.用abstract定义的类()A、可以被实例化B、不能派生子类C、不能被继承D、只能被继承简答题什么是实例变量和类变量及他们的区别?static类变量类名.类变量对象.类变量(公共的全局的)普通变量对象.变量类及类成员的访问控制符有哪些,并说明各自权限?publicprotecteddefaultprivate一个类里√√√√一个包里的类√√√×在不同包里的子类√√××在不同包里的其他类√×××抽象类和接口区别抽象类模板接口标准覆盖与重载区别覆盖对应的是两个继承关系的类返回值函数名参数类型和个数必须一致权限要大于父类重载在一个类里完成对同名函数的不同参数的调用异常和多线程部分选择题1、以下哪个方法用于定义线程的执行体()。A.start()B.init()C.run()D.main()2、在编写异常处理的Java程序中,每个catch语句块都应该与()语句块对应,使得用该语句块来启动Java的异常处理机制。A、if–elseB、switchC、throwD、try3、可以对对象加互斥锁的关键字是()A、transientB、synchronizedC、serializeD、static4、下列哪个方法可用于创建一个可运行的线程类()A、publicclassXimplementsRunable{publicvoidrun(){......}}B、publicclassXimplementsThread{publicvoidrun(){......}}C、publicclassXimplementsThread{publicintrun(){......}}D、publicclassXimplementsRunable{protectedvoidrun(){......}}简答题简述创建线程的2种方式的区别。继承Thread类实现Runnable接口(资源共享、类的扩充)简答题1、什么是实例变量和类变量及他们的区别?static类变量类名.类变量对象.类变量(公共的全局的)普通变量对象.变量类变量也叫静态变量,也就是在变量前加了static的变量;实例变量也叫对象变量,即没加static的变量;类变量和实例变量的区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象2、类及类成员的访问控制符有哪些,并说明各自权限?publicprotecteddefaultprivate一个类里√√√√一个包里的类√√√×在不同包里的子类√√××在不同包里的其他类√×××3、抽象类和接口区别抽象类模板接口标准①抽象类约定多个子类之间共同使用的方法,接口约定多个互不相同类之间的使用方法。②抽象类是单继承,接口是多继承的。③抽象类及类中的成员具有和普通类一样的访问权限,接口只有public和缺省两种。④抽象类可以包含非抽象方法,也可声明构造方法;接口都是抽象方法。⑤抽象类属性可以赋值,接口中只能声明为常量。4、覆盖与重载区别覆盖对应的是两个继承关系的类返回值函数名参数类型和个数必须一致权限要大于父类重载在一个类里完成对同名函数的不同参数的调用在覆盖中,由于同名的不同方法是存在于不同的类中,所以只需要在调用方法时,指明调用的是哪个类的方法,就可以很容易地把它们区分开来。而在重载多态中,由于重载发生在同一个类中,不能再用类名来区分不同的方法,所以一般采用不同的形式参数列表,包括形式参数的个数、类型、顺序的不同,来区分重载的方法5.简述创建线程的2种方式的区别。继承Thread类实现Runnable