您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第三章 Java语言面向对象的特征.doc.deflate1
第三章Java语言面向对象的特征2.选择题3-1下列对封装性的描述中,错误的是(B).A.封装体包含了属性和行为B.封装体中的属性和行为的访问权限是相同的C.被封装的某些信息在封装体外是不可见的D.封装使得抽象的数据类型提高了可重用性3-2下列关于继承性的描述中,错误的是(C)A.一个类可以同时生成多个子类B.子类继承了父类的所有成员C.Java语言支持单重继承和多重继承D.Java语言通过接口可使子类使用多个父类的成员3-3下列对多态性的描述中,错误的是(A)A.Java语言允许运算符重载B.Java语言允许方法重载C.Java语言允许变量覆盖D.多态性提高了程序的抽象性和简洁性3-4在类的修饰符中,规定只能被同一包类所使用的修饰符是(B)A.publicB.默认C.finalD.abstract3-5在成员变量的修饰符中,规定只能被同一包类所使用的修饰符是(B)A.privateB.publicC.默认D.protected3-6在成员方法的访问控制修饰符中,规定访问权限包含该类自身,同包的其他类和其他包的该类子类的修饰符是(D)A.publicB.privateC.默认D.protected3-7下列关于构造方法的特点的描述中,错误的是(A)A.不可重载B.方法名同类名C.无返回类型D.系统自动调用3-8下列关于静态方法的特点的描述中,错误的是(D)A.在类体内说明静态方法使用关键字staticB.静态方法只能处理静态变量或调用静态方法C.静态方法不占用对象的内存空间,非静态方法占用对象的内存空间D.静态方法只能用类名调用3-9下列对静态初始化器的描述中,错误的是(C)A.静态初始化器是用来对类进行初始化的,而不是对某个对象初始化B.静态初始化器是由关键字static和一对花括号组成的语句组C.静态初始化器不同于构造方法,它不是方法D.静态初始化器在产生新对象时,是由系统自动调用的3-10下列关于抽象类的描述中,错误的是(C)A.抽象类是用修饰符abstract说明的B.抽象类是不可以定义对象的C.抽象类是不可以有构造方法的D.抽象类通常要有它的子类3-11下列关于类的继承性的描述中,错误的是(D)A.继承是在已有类的基础上生成新类的一种方法B.子类继承父类的所有成员C.Java语言要求一个子类只有一个父类D.父类中成员的访问权限在子类中将被改变3-12下列关于子类继承父类的成员的描述中,错误的是(A)A.子类中继承父类中的所有成员都可以直接访问B.子类中定义有与父类同名变量时,子类继承父类的操作中,使用继承父类的变量;子类执行自己的操作中,使用自己定义的变量C.当子类中出现成员方法头与父类方法头相同的方法时,子类成员方法覆盖父类中的成员方法D.方法重载是编译时处理的,而方法覆盖是在运行时处理的3-13下列关于接口的描述中,错误的是(B)A.接口实际上是由变量和抽象方法构成的特殊类B.一个类只允许继承一个接口C.定义接口使用的关键字是interfaceD.在继承接口的类中通常要给出接口中定义的抽象方法的具体实现3-14下列关于包的描述中,错误的是(A)A.包是一种特殊的类B.包是若干个类的集合C.包是使用package语句创建的D.包有有包名包和无名包两种3-15下列常用包中,存放用户图形界面类库的包是(A)A.java.awtB.java.langC.java.utilD.java.io3-16下列是系统提供的常用的类,所有类的父类的类是(B)A.MathB.ObjectC.SystemD.String3.判断题3-1类是一种类型,也是对象的模板。(对)3-2Java语言只支持单重继承,不支持多重继承。(对)3-3类中说明的方法可以定义在类体外。(错)3-4class不是定义类的唯一关键字。(错)3-5某类的对象可以作为另一个类的成员。(对)3-6在类体内说明成员变量时不允许赋初值。(错)3-7最终变量就是Java语言中的符号常量。(对)3-8静态变量的引用只能使用对象。(错)3-9静态方法只能处理静态变量。(对)3-10抽象方法是一种只有说明而无具体实现的方法。(对)3-11最终方法是不能被当前子类重新定义的方法。(对)3-12Java语言中,方法调用一律都是传址的引用调用。(错)3-13非静态方法中不能引用静态变量。(错)3-14静态初始化器是在构造方法被自动调用之前运行的。(对)3-15抽象方法仅有方法头,而无方法体。(对)3-16抽象方法一定出现在抽象类中。(对)3-17最终类,最终方法和最终变量的修饰符都用final。(对)3-18创建对象时系统将调用适当的构造方法给对象初始化。(对)3-19使用运算符new创建对象时,赋给对象的值实际上是一个地址值。(对)3-20使用构造方法只能给非静态成员变量赋初值。(对)3-21创建对象时,该对象占用的内存空间除了非静态的成员变量外,还有非静态的成员方法。(对)3-22Java语言中,对象成员的表示只使用运算符“.”。(对)3-23Java语言中,对象赋值实际上是同一个对象具有两个不同的名字,因为他们都有同一个地址值。(对)3-24对象可作方法参数,对象数组不能作方法参数。(错)3-25Java语言中,所创建的子类都应有一个父类。(对)3-26Java语言中,类的继承是可以传递的。(对)3-27Java语言中,构造方法是可以继承的。(错)3-28子类中构造方法应包含自身类的构造方法和直接父类的构造方法。(对)3-29调用this或super的构造方法的语句必须放在第一条语句。(对)3-30子类对象可以直接赋值给父类对象;而父类对象不可以赋值给子类对象。(错)3-31子类中所继承父类的成员都可以在子类中访问。(错)3-32成员方法的重载和覆盖是一回事。(错)3-33一个类可以实现多个接口。接口可以实现“多重继承”。(对)3-34实现接口的类不能是抽象类。(对)4.填空题3-1对象具有3大要素,它们分别是(对象名),(对象类型),(对象值)。这3大要素分别用(同标识符),(类名),(默认值或初值)表示。3-2定义类时,通常要使用的关键字有(class),(extends),(implements)。3-3成员变量的定义格式如下:([修饰符])变量类型变量名(=初值);3-4成员变量的非访问控制修饰符有(static),(final),(volatile)。3-5在成员方法的定义中可省略的部分有(修饰符),(参数表),(异常类名列表)。3-6Java语言中,重载方法的选择是在(编译)时进行的,系统根据(参数个数),(参数类型),(参数顺序)寻找匹配方法。3-7没有子类的类称为(最终类),不能被子类重载的方法称为(最终方法),不能被改变值的量称为常量,又称为(最终变量)。3-8创建一个对象时,通常要包含3项内容:(说明对象),给对象分配空间,(对象初始化)。3-9系统规定int型变量默认值为(0),浮点型变量的默认值为(0.0),布尔型变量的默认值为(false)。3-10Java语言中,定义子类时,使用关键字(extends)来给出父类名。如果没有指出父类,则该类的默认父类为(object类)。3-11系统规定:表示当前类的构造方法用(this()),表示直接父类的构造方法用(super())。3-12接口中默认的成员变量的修饰符为(final),默认的成员方法的修饰符是(final)。3-13实现接口中的抽象方法时,必须使用(完全相同)方法头,并且还要用(public)修饰符。3-14包名与子包名之间用(.)分隔。加载包的关键字是(import)。3-15字符串类又包含两大类,它们是(String)和(StringBuffer).5.分析程序的输出结果题3-1Exer3_1.javaclassA{intx,y,z,sum;A(inti,intj,intk){x=i;y=j;z=k;sum=x+y+z;}booleansameA(Aal){if((al.x==x)&(al.y==y)&(al.z==z))returntrue;elsereturnfalse;}booleansameS(Aal){if(al.sum==sum)returntrue;elsereturnfalse;}}classExer3_1{publicstaticvoidmain(Stringargs[]){Aa=newA(2,5,8);Ab=newA(2,5,8);Ac=newA(5,8,2);System.out.println(a,sameA(b));System.out.println(a,sameA(c));System.out.println(a,sameA(b));System.out.println(a,sameA(c));}}输出结果如下:truefalsetruetrue3-2Exer3_2.javaclassB{voidmeth(inti){System.out.println(Int:+i);}voidmeth(doublei){System.out.println(Double:+i);}}classExer3_2{publicstaticvoidmain(Stringargs[]){inti=8;doubled=6.8;shorts=10;floatf=5.3f;byteb=9;charc='a';Bob=newB();ob.meth(i);ob.meth(d);ob.meth(s);ob.meth((int)f);ob.meth(b);ob.meth(c);}}输出结果如下:Int:8Double:6.8Int:10Int:5Int:9Int:973-3Exer3_3.javaclassC{intc;C(inta){c=0;for(inti=0;i=a;i++)c+=i;}C(Cb){c=b.c;}}classExer3_3{publicstaticvoidmain(Stringargs[]){Cc1=newC(6);Cc2=newC(newC(4));System.out.println(c1:+c1.c);System.out.println(c2+c2.c);}}输出结果如下:c1:21c2:103_4Exer3_4.javaclassD{staticintd=100;staticintmeth(){ints=d*10;return(s);}D(inti){d=i;}}classExer3_4{publicstaticvoidmain(Stringargs[]){System.out.println(d.meth:+D.d);Ddd=newD(10);System.out.println(d:+D.d);System.out.println(dd:+dd.d);System.out.println(d.meth:+D.meth());System.out.println(d.meth:+dd.meth());System.out.println(d:+D.d);D.d=500;System.out.println(d.meth:+D.meth());}}输出结果如下:d.meth:100d:10dd:10d.meth:100d.meth:100d:10d.meth:50003_5Exer3_5.javaclassE{doubleh,w;voidshow(){System.out.println(width=+w+,height=+h);}}classTextendsE{doublearea(){returnw*h;}}classExer3_5{publicstaticvoidmain(Stringargs[]){Tt1=newT();Tt2=newT();t1.w=8.0;t1.h=5.0;t2.w=12.0;t2.h=16.0;t1.show();System.out.println(t1:area=+t1.area());t2.sho
本文标题:第三章 Java语言面向对象的特征.doc.deflate1
链接地址:https://www.777doc.com/doc-3304719 .html