JAVA练习题 (2)
- 格式:doc
- 大小:75.00 KB
- 文档页数:6
习题二一、判断题1.一个类定义了一个或多个构造方法,则Java不提供默认的构造方法。
( )2.如果定义的类中没有给出构造方法,系统也不会提供构造方法。
( )3.可以通过类名直接访问类变量。
( )4.非static修饰的方法既能被对象调用,又能用类名直接调用。
( )5.static修饰的类方法既能被对象调用,又能用类名直接调用。
( )6.一个类的所有对象共享static修饰的类变量。
( )7.类由两部分组成,一部分是变量的定义,一部分是方法的定义。
( )8.方法的定义由方法的声明和方法体等两部分组成。
( )9.方法中的形参可以和方法所属类的属性(域)同名。
( )10.package语句只能放到Java源程序除注释之外的第一行位置。
( )11.Java应用程序的人口main方法只有一种定义。
( )12.静态成员域具有全局作用域范围。
( )13.类成员变量可无须初始化,由系统自动进行初始化。
( )14.在类体部分定义时,类的构造方法、成员域和成员方法的出现顺序在语法上有严格限制。
( )15.类的实例对象的生命周期包括实例对象的创建、使用、废弃、垃圾的回收。
( )二、选择题1.下述哪个说法是不正确的?( )A.局部变量在使用之前无须初始化,因为有该变量类型的默认值B.类成员变量由系统自动进行初始化C.参数的作用域就是所在的方法D.for语句中定义的变量,当for语句执行完时,该变量就消亡了2.下述哪一个关键字不是类及类成员的访问控制符?( )A.public B.private C.static D.protected3.考虑以下的方法头声明:public void myMethod(int num,char letter)下列哪个描述是正确的?( )A. 这个方法有个int型的参数,它的形式参数是letterB.这个方法有个int型的参数,它的形式参数是numC.这个方法有个char型的参数,它的实际参数是myMethodD.这个方法是一个构造方法4.假设有个类已经定义了下述的变量:int num1=10;int num2=20;String word=new String("exam");double answer=25.5;另外定义了下列方法头:public int stuff(String s,int x,int y)以下哪个是正确的方法调用?( )A.num1=stuff (”hell o”,num1,num1);B,answer=stuff (word,answer,num2);C.num2=stuff(”hell o”,num1,answer);D.num1=stuff(num1,num2,word);5.下面哪一项不是构造方法的特点?( )A.构造方法名必须与类名相同B.构造方法不具有任何返回类型C.任何一个类都含有构造方法D.构造方法修饰词只能是public6.假设已声明了一个类A的两个对象a1、a2,为了初始化a1和a2,下面语句正确的是( )。
2面向对象程序设计基础2.1单项选择题1.下面关于类的继承性的描述中,错误的是()。
A.继承是在已有的基础上生成新类的一种方法B.Java语言要求一个子类只有一个父类C.父类中成员的访问权限在子类中将被改变D.子类继承父类的所有成员,但不包括私有的成员方法2.在成员方法的访问控制修饰符中,规定访问权限包含该类自身,同包的其他类和其他包的该类子类的修饰符是()。
A.默认B.protected C.private D.public3.在类的修饰符中,规定只能被同一包类所使用的修饰符是()。
A.public B.默认C.final D.abstract4.下列关于子类继承父类的成员描述中,错误的是()。
A.当子类中出现成员方法头与父类方法头相同的方法时,子类成员方法覆盖父类中的成员方法。
B.方法重载是编译时处理的,而方法覆盖是在运行时处理的。
C.子类中继承父类中的所有成员都可以访问。
D.子类中定义有与父类同名变量时,在子类继承父类的操作中,使用继承父类的变量;子类执行自己的操作中,使用自己定义的变量。
5.下列关于继承性的描述中,错误的是()。
A.一个类可以同时生成多个子类B.子类继承了父类中除私有的成员以外的其他成员C.Java支持单重继承和多重继承D.Java通过接口可使子类使用多个父类的成员6.下列关于抽象类的描述中,错误的是()。
A.抽象类是用修饰符abstract说明的 B.抽象类是不可以定义对象的C.抽象类是不可以有构造方法的D.抽象类通常要有它的子类7.下列关于构造方法的叙述中,错误的是()。
A.构造方法名与类名必须相同B.构造方法没有返回值,且不用void声明C.构造方法只能通过new自动调用D.构造方法不可以重载,但可以继承8.下面叙述中,错误的是()。
A.子类继承父类B.子类能替代父类C.父类包含子类D.父类不能替代子类9.下面关于接口的描述中,错误的是()。
A.一个类只允许继承一个接口B.定义接口使用的关键字是interfaceC.在继承接口的类中通常要给出接口中定义的抽象方法的具体实现D.接口实际上是由常量和抽象方法构成的特殊类10.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的?()A.ArrayList myList=new Object(); B.ArrayList myList=new List();C.List myList=new ArrayList(); D.List myList=new List();11.下列哪一个方法与方法public void add(int a){}为不合理的重载方法?()A.public void add(char a) B.public int add(int a)C.public void add(int a,int b) D.public void add(float a)12.MAX_LENGTH是int型public成员变量,变量值保持为常量100,其定义是()。
练习题:一、读程序,写出和程序输出格式一致的输出结果。
1、class J_SuperClass {void mb_method() {System.out.println("J_SuperClass::mb_method");}static void mb_methodStatic() {System.out.println("J_SuperClass::mb_methodStatic"); } }public class J_Test extends J_SuperClass {void mb_method() {System.out.println("J_Test::mb_method");}static void mb_methodStatic() {System.out.println("J_Test::mb_methodStatic");}public static void main(String[] args) {J_SuperClass a = new J_Test();a.mb_method();a.mb_methodStatic();J_Test b = new J_Test();b.mb_method();b.mb_methodStatic();}}输出结果:32342、class ValHold {public int i = 10;}public class ObParm {public static void main(String[] args) {ObParm o = new ObParm();o.amethod();}public void amethod() {int i = 99;ValHold v = new ValHold();v.i = 30;another(v, i);System.out.println(v.i + " " + i);}public void another(ValHold v, int i) {i = 0;v.i = 20;ValHold vh = new ValHold();v = vh;System.out.println(v.i + " " + i);}}输出结果:10 020 993、class J_SuperClass {int m_data;J_SuperClass() {mb_add(1);}public void mb_add(int i) {m_data += i;}public void mb_print() { System.out.println(m_data);}}class J_SubClass extends J_SuperClass { J_SubClass() {mb_add(2);}public void mb_add(int i) {m_data += i * 2;}}public class J_Test {public static void mb_method(J_SuperClass a) { a.mb_add(6);a.mb_print();}public static void main(String[] args) {mb_method(new J_SubClass());}}输出结果:184、public class Two {public static void main(String[] args) {One one = new One("Hello");one.getString("Xiao ming!");}}class One {private String myStr;public One(String str) {myStr = str;}public void getString(String str) { System.out.println(myStr + " " + str);}}输出结果:Hello Xiao ming!5、public class J_Test {String m_kobe = "1";String[] m_king = {"2"};public static void main(String[] args) {J_Test app = new J_Test();app.mb_operate(app.m_kobe, app.m_king); System.out.println(app.m_kobe+app.m_king[0]); } static void mb_operate(String kobe, String[] king) { kobe = new String("3");king[0] = new String("4");}}输出结果:141.某公司正进行招聘工作,被招聘人员需要填写个人信息,编写“个人简历”的封装类。
《JAVA程序设计》复习题之(二)填空题1. Java是目前最广泛的__________编程语言之一。
2. Java具有简单、___________、稳定、与平台无关、解释型、多线程、动态等特点。
3. JDK开发java程序需三个步骤,分别为______________,编译java源程序,运行java源程序。
4.Java具有简单、面向对象、稳定、与平台无关、解释型、___________、动态等特点。
5.编写Java程序,可以使用一个__________来编写源文件。
6.把编写好的Java源文件保存起来,原文件的扩展名必须是___________。
7.用JDK编译Java源程序,使用的命令是__________,编译源文件得到字节码文件。
8. Java源程序编译后生成的字节码文件扩展名为__________。
9.用JDK运行Java应用程序,使用的命令是__________。
10. Java程序分为两类,即___________和Java小应用程序。
11.用JDK工具,显示Applet程序运行结果的命令是___________。
12. Java程序分为两类,即Java应用程序和___________。
13.一个Java源程序是由若干个___________组成。
14. __________是Java的关键字,用来定义类。
15. Java应用程序中有多个类时,java命令后的类名必须是包含了___________方法的那个类的名字。
16.一个Java应用程序必须且只有一个类含有___________方法。
17.在一个Java应用程序中main方法必须被说明为_____________。
18. Java中所有程序都使用方法,应用程序以______________方法开始。
19. Java源文件中有多个类,但只能有一个类是____________类。
20.一个Java Applet 不再需要main方法,但必须有一个类扩展了_____________类。
类和对象.习题1、基本概念题:1.什么叫类?什么叫对象?类是相似对象中共同属性和方法的集合体。
对象是类的实例。
2.对象怎样得到内存空间的?垃圾对象怎样回收的?对象的内存空间是在用户需要时,用new运算符创建的。
对象也有作用范围,我们把超出作用范围的对象(或称不再被使用的对象)称作垃圾对象。
在Java中,收集和释放内存是一个叫做自动垃圾回收线程的责任。
自动垃圾回收线程在系统空闲时自动运行,这个线程监视用户程序中所有对象的有效作用范围,当某个对象超出其作用范围时,该线程就对这样的对象做上垃圾对象标识,并在适当的时候一次性回收这些垃圾对象。
3.什么叫引用类型?对象是引用类型吗?所谓引用类型,是指该类型的标识符表示的是一片内存连续地址的首地址。
对象和数组一样,也是引用类型。
即对象定义后,系统将给对象标识符分配一个内存单元,用于存放实际对象在内存中的存放位置。
4.类的修饰符共有几种?分别是什么?类声明的<修饰符>分为访问控制符和类型说明符两部分,分别用来说明该类的访问权限以及该类是否为抽象类或最终类。
访问控制符:private、public和protected类型说明符:abstract和final5.共有几种形式的变量?这些变量各自的用途是什么?变量可分为:static:指明该成员变量是一个类成员变量final:指明该成员变量是常量transient:指明该成员变量是临时变量。
transient很少使用。
6.成员变量和成员方法的修饰符共有几种?各自的访问权限是什么?有private、public和protected三种private:修饰符表示该成员变量只能被该类本身访问,任何其他类都不能访问该成员变量。
protected:修饰符表示该成员变量除可以被该类本身和同一个包的类访问外,还可以被它的子类(包括同一个包中的子类和不同包中的子类)访问。
public:修饰符表示该成员变量可以被所有类访问。
1、Java中用于定义接口的关键字是()A、importB、packageC、classD、interface2、以下关于abstract的说法,正确的是( )A、abstract只能修饰类B、abstract只能修饰方法C、abstract类中必须有abstract方法D、abstarct方法所在的类必须用abstract修饰3、下列哪种说法是正确的()A、私有方法不能被子类覆盖。
B、子类可以覆盖超类中的任何方法。
C、覆盖方法可以声明自己抛出的异常多于那个被覆盖的方法。
D、覆盖方法中的参数清单必须是被覆盖方法参数清单的子集。
4、关于类继承的说法,正确的是()A、Java 类允许多重继承B、Java接口允许多继承C、接口和类都允许多继承D、接口和类都不允许多继承5、关于抽象类,正确的是______。
A. 抽象类中不可以有非抽象方法B. 某个非抽象类的父类是抽象类,则这个子类必须重载父类的所有抽象方法C. 不能用抽象类去创建对象D. 接口和抽象类是同一个概念6、下列哪个类是由编译器自动生成对象的特殊类,是用于类操作?()A、Class类B、Thread类C、System类D、Object类7、下面关于继承的哪些叙述是正确的。
( )A、在java中只允许单一继承。
B、在java中一个类只能实现一个接口。
C、在java中一个类不能同时继承一个类和实现一个接口。
D、java的单一继承使代码更可靠。
8、抽象类A和抽象类B的定义如下:abstract class ex4_5_10_A {abstract int getinfo();}public class ex4_5_10 extends ex4_5_10_A {private int a = 0;public int getinfo() {return a;}public static void main(String args[]) {ex4_5_10 b = new ex4_5_10();System.out.println(b.getinfo());}}关于上述代码说明正确的是()。
复习题2如有雷同,纯属巧合!1.下列哪一种叙述是正确的()A. abstract修饰符可修饰字段、方法和类B。
抽象方法的body部分必须用一对大括号{}包住C。
声明抽象方法,大括号可有可无D。
声明抽象方法不可写出大括号2.下列说法正确的有()A. class中的constructor不可省略B. constructor必须与class同名,但方法不能与class同名C. constructor在一个对象被new时执行D。
一个class只能定义一个constructor3.以下哪个表达式是不合法的()A、String x=”Hello”; int y=9;x+=y;B、String x=”Hello”;int y=9;if(x= =y) { }C、String x="Hello”;int y=9; x=x+y;D、String x=null;int y=(x!=null)&&(x.length()〉0)? x.length():04.下列关于修饰符混用的说法,错误的是()A.abstract不能与final并列修饰同一个类B.abstract类中不可以有private的成员C.abstract方法必须在abstract类中D.static方法中能处理非static的属性5.()修饰符允许对类成员的访问不依赖于该类的任何对象A、abstractB、staticC、returnD、public6.关于被私有访问控制符private修饰的成员变量,以下说法正确的是()A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类B.可以被两种类访问和引用:该类本身、该类的所有子类C.只能被该类自身所访问和修改D.只能被同一个包中的类访问7.使用()方法可以获得Calendar类的实例.A.get()B.equals()C.getTime()D.getInstance()8.下面的集合中,()不可以存储重复元素.A.SetB.CollectionC.MapD.List9.关于Map和List,下面说法正确的是()。
java2期末考试试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是Java语言的特点?A. 面向对象B. 编译型语言C. 面向过程D. 动态类型答案:A2. Java中,哪个关键字用于定义一个类?A. classB. interfaceC. structD. enum答案:A3. 在Java中,下列哪个选项不是合法的变量名?A. _myVarB. myVarC. 2myVarD. myVar2答案:C4. Java中,下列哪个选项是正确的继承关系?A. 一个类只能继承一个类B. 一个类可以继承多个接口C. 一个类可以继承多个类D. 接口可以继承多个接口答案:D5. 下列哪个选项是Java中的标准异常?A. RuntimeExceptionB. IOExceptionC. SQLExceptionD. All of the above答案:D6. 在Java中,下列哪个关键字用于实现接口?A. implementsB. extendsC. interfaceD. abstract答案:A7. Java中,下列哪个选项是正确的方法重载?A. 方法名相同,参数列表相同B. 方法名相同,返回类型不同C. 方法名不同,参数列表相同D. 方法名相同,参数列表不同答案:D8. 下列哪个选项是Java中用于捕获异常的关键字?A. tryB. catchC. finallyD. All of the above答案:D9. Java中,下列哪个选项是正确的集合类?A. ArrayListB. LinkedListC. HashMapD. All of the above答案:D10. Java中,下列哪个选项是正确的多线程创建方式?A. 实现Runnable接口B. 继承Thread类C. 使用ExecutorServiceD. All of the above答案:D二、填空题(每题2分,共20分)1. Java语言中的“Hello World”程序是通过定义一个名为________的类来实现的。
Java程序设计练习题2Java程序设计练习题(2)一、单项选择题1.作为Java应用程序入口的main方法,其声明格式可以是( A )。
A、public static void main(String[] args)B、public static int main(String[] args)C、public void main(String[] args)D、public int main(String[] args)2.在一个合法的Java源程序文件中定义了3个类,其中属性为public的类可能有( B )个。
A、0B、1C、2D、33.下面( B )单词是Java语言的关键字。
A、sizeofB、abstractC、nullD、String4.下面( C )语句不会出现编译警告或错误。
A、float f = 1.3;B、char c = "a";C、byte b = 25;D、boolean d = null;5.下面程序片段输出的是( D )。
int i = 0, j = 9;do {if(i++ > --j)break;}while(i < 4);System.out.println("i = " + i + " and j = " + j);A、i = 4 and j = 4B、i = 5 and j = 5C、i = 5 and j = 4D、i = 4 and j = 56.对于下面(B )类定义,可以通过“new J_Class()”生成类J_Class的实例对象。
A、public class J_Class {public J_Class(void) { }}B、public class J_Class { }C、public class J_Class {public J_Class(String s) { }}D、public class J_Class {public void J_Class() { }public J_Class(String s) { }}7.要求设计一个类,它拥有一个特殊的成员域,该成员域必须能够被这个类的子类访问到,但是不能被不在同一个包内的其他类访问到。
习题二一、问答题1.什么叫标识符?标识符的规则是什么?false是否可以作为标识符。
用来标识类名、变量名、方法名、类型名、数组名、文件名的有效字符序列成为标识符。
标识符由字母,下划线、美元符号和数字组成;第一个字符不能是数字,false 不是标识符。
2.什么叫关键字?true和false是否是关键字?请说出6个关键字。
关键字就是Java语言中已经被赋予特定意义的一些单词,不可以把关键字作为名字来用。
true 和 false 都不是关键字。
其他的关键字:class (类) implements(实现接口) interface(接口类) enum (枚举)extends(继承)abstract(抽象类或抽象方法)3.Java的基本数据类型都是什么?boolean,char,byte,short,int,long,float,double4.float型常量和double型常量在表示上有什么区别?float常量必须用F或f为后缀。
double常量用D或d为后缀。
但double常量允许省略后缀。
5.怎样获取一维数组的长度,怎样获取二维数组中一维数组的个数。
一维数组名.length 二维数组名.length二、选择题1.下列哪项字符序列可以做为标识符? CA. trueB. defaultC. _intD. good-class2.下列哪三项是正确的float变量的声明? ADFA. float foo = -1;B. float foo = 1.0;C. float foo = 42e1;D. float foo = 2.02f;E. float foo = 3.03d;F. float foo = 0x0123;3.下列哪一项叙述是正确的? BA. char型字符在Unicode表中的位置范围是0至32767B. char型字符在Unicode表中的位置范围是0至65535C. char型字符在Unicode表中的位置范围是0至65536D. char型字符在Unicode表中的位置范围是-32768至32767 4.以下哪两项是正确的char型变量的声明? BEA. char ch = "R";B. char ch = '\\'C. char ch = 'ABCD';D. char ch = "ABCD";E. char ch = '\ucafe';F. char ch = '\u10100'5.下列程序中哪些【代码】是错误的?代码:2,3,4,5错public class E {public static void main(String args[]) {int x = 8;byte b = 127; //【代码1】b = x; //【代码2】x = 12L; //【代码3】long y=8.0; //【代码4】float z=6.89 ; //【代码5】}}6.对于int a[] = new int[3];下列哪个叙述是错误的? BA. a.length的值是3。