Java 一章至五章考试一.填空题(8分)1.面向对象的三大原则是(封装),(继承)和(多态).2 分2.如果想在对象实例化的同时就初始化成员属性,则使用(构造函数).2 分3.(实体)方法和(构造)方法不能修饰为abstract ?2分选择题(60分)1)在Java语言中,下列(a,d )是不满足命名规范的变量名。
(选择二项)a) 姓名b) $Namec) _in sta nceofd) in sta nceof2) 下列Java代码片段的输出结果是(a )。
char c='a';int i=c;float f=i;byte b=(byte)c;System.out.pri ntln( c+","+i+","+f+","+b);a) 编译错误b) a,97,97,97c) a,97,97.0,97d) a,97,97.0f,973) 下列Java代码中,空白处的代码是(b,c )。
(选择两项)public in terface Fee{public float calLabFee(float unitPrice, float time);}public class FeeImpl impleme nts Fee {public float calLabFee(float unitPrice, float time){retur n un itPrice * time;}}public class Fee In terfaceTest {public static void main( Stri ng[] args){Float labFee = fee.calLabFee(400.00,5);}}a) Fee fee = new Fee ();b) Fee fee = new Feelmpl();c) Feelmpl fee = new Feelmpl();d) Feelmpl fee = new Fee ();4) 在JAVA语言中,在包Packagel中包含包Package2,类Class_A直接隶属于包Packagel,类Class_C 直接隶属于包package2.在类Class_B 要应用Class_A 的A和Class_C的方法B ,你需要(a, b )语句。
(选择两项)a) import package^*;b) import package1.package2.*;c) import package2.*;d) import package2.package1.*;5) in t[] my_Array;my_Array=new in t[5];for(i nt coun t=0;co un t<=5;co un t++) System.out.pri ntln(m y_Array[co un t]);正确的运行结果是(d)a) 将1,2,3,4,5输出到屏幕b) 将0, 1,2,3,4输出到屏幕c) 将0,1,2,3,4,5输出到屏幕d) 将出现运行时异常6) 在java语言中,如果你有下面的类定义:(b)abstract class Shape{abstract void draw();}class Square exte nds Shape{}. (选择一项)a) 一切成功编译b) Shape可以编译,Square不能编译c) Square可以编译,Shape不能编译d) Square,Shape都不能编译7) 在JAVA编程中,以下(b )命令用来执行JAVA类文件a) javacb) javac) appletviewerd) 以上所有选项都不正确8) 编译并运行下面的Java程序:(c)class A{int var1=1;int var2;public static void main( Stri ng[] args){in t var3=3;A a=new A();System.out.pri ntl n( a.var1+a.var2+var3); }}a) 0b) 4c) 3d) 代码无法编译,因为var2根本没有被初始化9) 在Java语言中,下面关于构造函数的描述正确的是( d )。
(选择一项)a) 类必须有显式构造函数b) 它的返回类型是voidc) 它和类有相同的名称,但它不能带有任何参数d) 以上皆非10) 在java语言中,类Worker是类Person的子类,Worker的构造方法中有一句"super()",该语句(c ).( 选择一项)a) 调用类Worker中定义的super()方法b) 调用类Person中定义的super()方法c) 调用类Person的构造函数d) 语法错误11) 研究下面的JAVA代码: switch(x){ case1:System.out.pri ntl n( 1);case2:case3:System.out.pri ntl n( 3);case4:System.out.pri ntl n(4); }当x=2时,运行结果是(d ).(选择一项)a) 没有输出任何结果b) 输出结果为3 c) 输出结果为3和4 d)输出结果为1,3和412)在〃point x处的哪些申明是句法上合法的?(选择两项)class Pers on { private int a;public int cha nge(i nt m){retur n m;} }public class Teacher exte nds Person { public int b;public static void main(String arg[]){ Pers on p=new Pers on(); Teacher t=new Teacher(); int i; //po int x } } (c, d )c) i=p.a;d) i=p.cha nge(30); e)i=t.b;13) 下面关于继承的哪些叙述是正确的? (选择两项)(a, d)a) 在java 中只允许单一继承b) 在java 中一个类只能实现一个接口c) 在java 中一个类不能同时继承一个类和实现一个接口 d)java 的单一继承使代码更可靠。
14) public class test3 {public static void main( stri ng args[ ]) {for (int i=0;i<3; i ++) for(i ntj=3;j >=0;j--) if(i= =j) con ti nue;system.out.pri nti n( }a) b) i=m;i=b; { {”+i+“= ”+j);} (a,d,b)( 选择三项)a) i =0 j=3b) i =0 j=0c) i =2 j=2d) i =0 j=2e) i =1 j=215) ( d )修饰符允许对类成员的访问不依赖于该类的任何对象a) abstractb) staticc) returnd) public16) 研究下面的Java代码:public class testExcepti on{public static void main(String args[]){int a[]={0,1,2,3,4};int sum=0;try{for(int i=1;i<6;i++)sum=sum+a[i];System.out.pri ntl n("sum="+sum);}catch(Array In dexOutOfB oun dsExcepti on e){System.out.println(”数组越界");}finally{ System.out.println(”程序结束");}}}输出结果将是(b )。
(选择一项)a) 10 数组越界程序结束b) 10 程序结束c) 数组越界程序结束d) 程序结束17) 给定如下java代码:public class Test{public static void main(String[] args){int output=10;boolea n b仁false;if((b1==true )&&((output+=10)==20)){System.out.println( Equal "+output);}else{System.out.println( Not equal "+output);}}}( c )a) Equal 10b) Equal 20c) Not equal 10d) Not equal 2018) 给定如下java代码,编译运行后将会输出(c )(选择一项)public class Test{public static void main( Stri ng[] args){int a = 5;System.out.pri ntln ((a%2==1)?(a+1)/2:a/2);}}a) 1b) 2c) 3d) 419) public class Test exte nds Parent{public int coun t(){return 1%9;}public static void main(String[] args){System.out.pri ntl n(coun t());}}编译运行结果是(c )(选择一项)a) 编译错误b ) 运行时出现例外c ) 正常运行,输出1d )正常运行,输出020)已知 A 类被打包在 packageA , B 类被打包在 packageB ,且B 类被声明为 public ,且有一个成员变量 x 被声明为protected 控制方式。
C 类也位于packageA 包,且继承了 B 类。
则以下说话正确的是(c )(选择一项) A 类的实例不能访问到 A 类的实例能够访问到 C 类的实例可以访问到 C 类的实例不能访问到 三•问答题(22分) 1.方法重载要符合什么条件? 4分1,方法名相同2,参数类型不同(参数个数不同,或者参数类型不同,或者类型和参数都不同) 3,与返回类型无关2•修饰成员变量的四种访问权限是哪些,分别在哪些地方可以访问? 4分 1,public ,所有都可访问2, protected ,子类和同包可访问 3, private ,本类可访问 4,默认,同包可访问3. super 关键字的作用?它什么时候用? 3分1,放在子类构造函数的第一行,显示调用父类的构造函数 2,super.方法名,调用父类的方法 3,super.属性名,调用父类的成员属性4. 方法重写要符合什么条件?和方法重载有什么区别?5分1,有继承2,方法名,参数,返回类型都相同 与重载的区别:重载是参数不同,与返回类型无关4.多态分哪两种?前提条件分别是什么? 3分1,运行时多态,前提是有继承,子类重写父类的方法,并且父类的引用指向子类的应用 2,编译时多态,6. final 有哪些作用?分别有哪些注意事项? 3分1, 类不能被继承,方法不能被重写 2, 方法中不能用this 关键字a) b) c) d)B 类的实例B 类一个实例的x 成员 B 类一个实例的x 成员 B 类的实例四.附加题:(10)抽象类、继承、接口综合设计一个系统:XXX门的实现过程:流程:设计一张抽象的门Door,那么对于这张门来说,就应该拥有所有门的共性,开门openDoor()和关门closeDoor();然后对门进行另外的功能设计,防盗--theftproof() 、防水--waterproof。