下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、JAVA 类和对象及数组习题一、选择题( 1)下列构造方法的调用方式中,正确的是(D ) -原因:在通过new 实例化一个类对象时系统会自动调用该类相应的构造方法。A按照一般方法调用B由用户直接调用C只能通过new自动调用D被系统调用( 2)在Java中,能实现多重继承效果的方式是(C ) -原因:一个类可以同时实现多个接口。Java接口反映了对象较高层次的抽象,还弥补了Java只支持单继承的不足,可用它来完成多继承的一些功能。A内部类B适配器C接口D同步( 3) int 型 public 成员变量MAX_LENGTH ,该值保持为常数100,则定义这个变量的语句是 ( D ) 原因: jav
2、a 中定义常量用关键字final 来定义。A public int MAX_LENGTH=100B final int MAX_LENGTH=100C public const int MAX_LENGTH=100 D public final int MAX_LENGTH=100( 4)下列叙述中,正确的是( A ) 原因:Java严格区分大小写,所以变量number与 Number不相同; Java 中的注释方式除了“/”行注释之外还有段注释“/*/ ”和文档注释/*/ 。 Java 源文件中的public 类只能有一个。A. 声明变量时必须指定一个类型B. Java认为变量number与
3、 Number 相同C. Java中唯一的注释方式是"/"D. 源文件中public 类可以有0 或多个( 5)下列叙述中,错误的是( D ) 原因:子类继承父类,并且可以有自己的成员变量和成员方法。所以可以认为子类是父类的扩展。A. 父类不能替代子类B. 子类能够替代父类C. 子类继承父类D. 父类包含子类( 6)下列代码中,将引起编译错误的行是( B ) 原因:定义float 型变量并对其初始化时,其值后面要加一个f.1) public class Exercise2) public static void main(String args)3) float f=0.0
4、;4) f +=1.0;5) 6) ( 1) 2 行 B. 第 3 行 C. 第 4 行 D. 第 6 行( 7) 下列关于继承的哪项叙述是正确的?( D ) 错误原因:JAVA不允许多重继承,但可以通过接口的机制来达到多重继承的目的;一个类可以同时继承一个类和实现多个接口,但是不能同时继承多个类。A在java 中允许多重继承B在java中一个类只能实现一个接口C在java 中一个类不能同时继承一个类和实现一个接口D java的单一继承使代码更可靠( 8)下列哪个修饰符可以使在一个类中定义的成员变量只能被同一包中的类访问?( B ) 原因:无修饰符时是缺省修饰,它可以被同一包中的任何类访问。A
5、 privateB无修饰符C publicD protected( 9)给出下列代码,如何使成员变量m 被方法fun()直接访问?( C ) 原因:静态的成员方法只能访问静态的成员变量。class Test private int m;public static void fun().A将private int m改为protectedint mB 将private int m改为public intmC将private int m改为static intmD 将private int m改为int m( 10) 已知有下列类的说明,则下列哪个语句是正确的?( B ) 原因: f是 Test类
6、的私有成员变量,在类外不能访问,所以A不对。 m是非静态的变量不能直接用类名来访问,所以C 不对。由以上两个原因可知D 不对。public class Test private float f = 1.0f;int m = 12;static int n=1;public static void main( String arg) Test t = new Test(); A t.f;B this.n;C Test.m;D Test.f;( 11) 给出下列代码,则数组初始化中哪项是不正确的?( A ) 原因: array2 是一个二维数组,而aray1 是一个一维数组。byte array1
7、,array2;byte array3;byte array4;A array2 = array1B array2=array3C array2=array4D array3=array4( 12)下列代码的执行结果是( A ) 原因:在非静态的方法中不能定义静态的变量且方法 aMethod没有返回语句。public class Test public int aMethod() static int i=0;i+;System.out.println( i) ;public static void main( String args) Test test = new Tes()t;test.
8、aMethod(); A编译错误B 0 C 1 D运行成功,但不输出( 13)下列关于内部类的说法不正确的是( C ) 原因:内部类可以声明为private 或protected,还可以声明为abstract 或 final;A内部类的类名只能在定义它的类或程序段中或在表达式内部匿名使用B内部类可以使用它所在类的静态成员变量和实例成员变量C内部类不可以用abstract修饰符定义为抽象类D 内部类可作为其他类的成员,而且可访问它所在类的成员( 14)顺序执行下列程序语句后,则b 的值是 ( C ) 原因: String 类的 substring 方法用于返回一个新的字符串对象,在当前字符串中,
9、求以第一个参数为起始索引位置,第二个参数为结束索引位置的子串的值。其中不包括结束索引位置的那个字符。String a="Hello"String b=a.substring( 0,2) ;A Hello B HelC HeD null( 15)为AB 类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB 作为前缀就可以调用它,该方法头的形式为( A )。 -原因:static 修饰的方法又称为静态方法。静态方法是类方法,它可以直接通过类来调用,也可以通过类实例来调用。A static void method( )B. public void method
10、( )C final void method( )D. abstract void method(16) 不使用static修饰符限定的方法称为对象(或实例)方法, 下列哪一个说法是正确的?( D ) -原因: A 子类实例方法可以直接调用父类的public 和 protected 实例方法,但不能调用父类的private 方法。 B 类方法也称为静态方法,非静态的方法不能调用静态的方法和成员变量,所以无论是父类还是子类的实例方法都不能调用静态方法。C 一个类的实例方法只有这个类的其它方法或对象可以调用,不可以由其它类不经过实例化直接调用。A.实例方法可以直接调用父类的实例方法。B.实例方法可
11、以直接调用父类的类方法。C.实例方法可以直接调用其他类的实例方法。D.实例方法可以直接调用本类的实例方法( 17)设有下面的一个类定义:class AA static void Show( ) System.out.println( 我喜欢“ Java! ” ); class BB void Show( ) System.out.println( 我喜欢“ C+!” ); 若已经使用AA 类创建对象a和BB 类创建对象b,则下面(A、 C )方法调用是正确的 原因:静态方法属于类方法,它可以直接通过类来调用,也可以通过类实例来调用。而非静态的方法则只能通过类实例(对象)来调用。所以AA类的静态
12、 show方法即可通过类也可以通过对象来调用,而BB 类中的非静态方法show则只能通过对象b 来调用。A. a.Show( ) ; b.Show( ) B. AA.Show( ); BB.Show( );C. AA.Show( ); b.Show( ); D. a.Show( ); BB.Show( );(18) 在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序特性称为(C )。 原因:同一名称的方法实现不同的功能是面向对象的多态性的表现,该多态性也称为重载。A. 隐藏B.覆盖C.重载 D.Java不支持此特性
13、(19) 对于构造函数,下列叙述不正确的是(C )。 原因:子类可以通过super来调用父类的构造方法。A. 构造函数也允许重载。B.子类无条件地继承父类的无参构造函数。C.子类不允许调用父类的构造函数。D.在同一个类中定义的重载构造函数可以相互调用。(20) 对于子类的构造函数说明,下列叙述中不正确的是(D )。-原因:子类不可以继承父类的有参构造函数。只能通过super调用。A. 子类无条件地继承父类的无参构造函数。B.子类可以在自己的构造函数中使用super关键字来调用父类的含参数构造函数,但这个调用语句必须是子类构造函数的第一个可执行语句。C.在创建子类的对象时,将先执行继承自父类的无
14、参构造函数,然后再执行自己的构造函数。D.子类不但可以继承父类的无参构造函数,也可以继承父类的有参构造函数。二、请写出下列程序的运行结果(1)下列程序的运行结果是( s=120) 分析: if语句执行3次,分别是当i=0,3,6时,对应的数组中的数分别为:10, 40, 70,它们的和为120.public class Examac public static void main(String args ) int i , s = 0 ;int a = 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 ;for ( i = 0 ; i < a.leng
15、th ; i + )if ( i%3 = 0 ) s += ai ;System.out.println("s="+s); (2)下列程序的运行结果是(110 110 110 110 110) 分析: for 循环执行5 次,分别输出11+99, 22+88, 33+77, 44+66, 55+55 的和,且之间用空格隔开。public class Examad public static void main(String args ) int i ;int a = 11,22,33,44,55,66,77,88,99 ;for ( i = 0 ; i <= a.le
16、ngth / 2 ; i + )System.out.print( ai+aa.length-i-1+" ");System.out.println( );(3)下列程序的运行结果是( parentchild child) 分析:当对象myC调用方法printAll()后,顺序执行该方法中的三条语句,在子类 Child 中,重载了父类的printMe 方法,所在当执行this.printMe() 和 printMe()方法时都调用重载后的printMe()方法。所以依次输出parent,child,child.class Parent void printMe() Syst
17、em.out.println("parent"); class Child extends Parent void printMe() System.out.println("child"); void printAll() super.printMe();this.printMe();printMe(); public class Examae public static void main(String args ) Child myC = new Child( );myC.printAll( ); (4)下列程序的运行结果是(The String
18、No.1 isThe String No.2 is String 2The String No.3 is stringThe String No.4 is stringThe String No.5 is string) 原因: s1 定义了一个空的字符串对象,所以不会输出任何东西。s2定义了一个字符串对象并赋初值为string2。 s3定义了一个以字符数组为参数的字条串对象,并将该字符数组组成的字符串赋给s3。 s4定义同s3,只是只取字符数组从索引值为2 的字符开始之后的6 个字符,所以会去掉前面的两个空格。s5是以一个StringBuffer类对象为参数定义的一个字符串对象,它的初值同s
19、3.class Examaf public static void main(String args) String s1=new String();String s2=new String("String 2");char chars=' ',' ','s','t','r','i','n','g'String s3=new String(chars);String s4=new String(chars,2,6);byte bytes=0,1,2
20、,3,4,5,6,7,8,9;StringBuffer sb=new StringBuffer(s3);String s5=new String(sb);System.out.println("The String No.1 is "+s1);System.out.println("The String No.2 is "+s2);System.out.println("The String No.3 is "+s3);System.out.println("The String No.4 is "+s4);Sys
21、tem.out.println("The String No.5 is "+s5); (5)下列程序的运行结果是(0 and 01 and 00 and 11 and 10 and 21 and 2) 原因:不带标签的break只结束它所在那一层循环不能结束外部循环,所以内层循环只能执行两次,分别是 j 为0, 1 时。 外层循环执行三次,分别是 i 为0, 1,2 时。public class ExamOuter public static void main(String args) for(int i=0; i<3; i+)for(int j=0;j<3;
22、j+) if(j>1) break;System.out.println(j+" and "+i); (6)下列程序的运行结果是(4) 原因:执行主方法时先对a,b 赋初值,然后判断条件,当判断+b=6 时,先对b 加 1 再判断,此时b 的值已经成为3,条件都不满足,输出a+b 的值为 1+3=4;class ExamTest public static void main(String args) int a=1,b=2;if(a=0)&(+b=6)a = 100;System.out.println(a+b); ( 7)下列程序的运行结果是(x=2 st
23、.y=1st.y=1) 原因:生成类StaticTest时,先对静态成员变量x赋值1,当执行主方法时,先执行其静态代码块,将x 的值加 1,此时 x=2。在实例化类时因为 y 并不是静态的,所以它属于对象,不属于类。所以对象中y 的初值为0,调用构造方法后对其加1.class StaticTest static int x=1;int y;StaticTest() y+; public static void main(String args ) StaticTest st=new StaticTest();System.out.println("x=" + x);Syst
24、em.out.println("st.y=" + st.y);st=new StaticTest();System.out.println("st.y=" + st.y); static x+;( 8)下列程序的运行结果是(x1=0x3=5x2=2) 原因:在生成类时先对类中的静态成员进行初始化分配空间,所以x1先赋值。再执行主函数时,先执行静态代码块,所以输出x3=5,再执行模3运算, x得2 赋给 x2 输出。class StaticStuff static int x;static System.out.println("x1="
25、; + x); x+=5; public static void main(String args ) System.out.println("x2=" + x);static System.out.println("x3=" + x);x%=3; ( 9)下列程序的运行结果是(2) 原因: 当调用子类无参构造方法时,就调用父类的的无参构造方法,该方法调用func()函数,而该函数被子类覆盖,所以会调用子类的func()函数。当执行第二条语句调用子类的含参构造方法时,系统会默认先调用父类的无参构造方法再调用子类含参构造方法。class Person pu
26、blic Person () func(); public void func() System.out.println("1 "); public class Person_A extends Person public Person_A()super();public Person_A(int a) System.out.println(a);public void func()System.out.println("2 ");public static void main(String args) Person_A pa = new Person_A();Person_A pb = new Person_A(3); ( 10)父类与子类初始化顺序:(父类静态变量父类静态代码块子类静态变量子类静态代码块父类代码块父类非静态变量A Person.子类代码块 子类非静态变量A chinese.true ) 原因:无论是静态方法,静态变量还是静态代码块都是属于类的,不属于对象,所以无论有无对象生成,类中的静态
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年边缘智能体手机汽车机器人设备协同计算架构
- 2026年花生饼粕提取生物活性肽技术开启农业“肽时代”
- 甘肃省秦安县重点达标名校2026年初三下学期摸底考试生物试题试卷含解析
- 2026年四川省凉山重点中学初三5月联合模拟考试化学试题试卷含解析
- 2026年从“设备购置”到“固定资产贷款”:设备更新再贷款政策十年演进复盘
- 广西南宁市第47中学2026届第二学期初三年级期中考试化学试题试卷含解析
- 2026年河南省洛阳市洛龙区市级名校初三5月模拟(三模)生物试题理试题含解析
- 2026届湖北省武汉市东西湖区达标名校初三下学期第三次月考试卷生物试题含解析
- 云南省个旧市2026届初三3月“线上教育”学习情况调查生物试题含解析
- 2026年山东省淄博市淄川区昆仑中学初三第一次联考试卷(生物试题理)试题含解析
- (高清版)DB36∕T 2070-2024 疼痛综合评估规范
- 《创伤性休克及急救》课件
- 中国石油企业文化课件
- 电力工程建设资源投入计划
- 事故后如何进行合理赔偿谈判
- 生物批签发管理办法
- 《酒店法律与法规实务》全套教学课件
- 项目经理负责制与项目管理实施办法
- 新媒体技术应用 课件全套 曾琦 单元1-7 认知新媒体岗位及新媒体工具-拓展 AIGC概述 生成式人工智能
- 城市公园景观设计教学课件
- 2025年哈尔滨铁道职业技术学院单招职业技能测试题库及答案一套
评论
0/150
提交评论