您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > java面向对象编程类的封装接口和基本类库练习题
面向对象编程基本知识练习一、判断题1.不需要定义类,就能创建对象。()2.构造方法用于给类的private实例变量赋值。()3.对象一经声明就可以立即使用。()4.在定义变量和方法时,必须清楚地在其面前标上访问权限修饰符。()5.Java程序中的参数传递都是把参数值传递给方法定义中的参数。()6.在类定义中,成员访问权限修饰符不能多次出现。()7.new操作符动态地为对象按其指定的类型分配内存,并返回该类型的一个引用。()8.类的方法通常设为public,而类的实例变量一般也设为public。()9.构造方法在创建对象时被调用。()10.通过点运算符与类对象的引用相连,可以访问此类的成员。()11.声明为protected的类成员只能被此类中的方法访问。()12.同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间。()13.类的成员变量可以放在类体的任意位置。()14.声明为protected的类成员可以被此类作用域中的任何对象访问。()15.没有返回值的方法可以用void来表示,也可以不加。()二、选择题1.下面对对象概念描述错误的是:()A操作是对象的动态属性B任何对象都必须有继承性C对象间的通讯靠消息传递D对象是属性和方法的封装体2.编译并运行下面的程序,运行结果为:()publicclassA{publicstaticvoidmain(String[]args){Aa=newA();a.method(8);}voidmethod(inti){System.out.println(“int:“+i);}voidmethod(longi){System.out.println(“long:“+i);}}A程序可以编译运行,输出结果为int:8B程序可以编译运行,输出结果为long:8C程序有编译错误,因为两个method()方法必须定义为静态(static)的D程序可以编译运行,但没有输出3.下面关于类的说法不正确的是:()A类是Java语言中的一种复合数据类型B类中不包含数据变量和方法C类是对所有具有一定共性的对象的抽象DJava语言的类只支持单继承4.能作为类及其成员的修饰符是:()AinterfaceBclassCprotectedDpublic5.设x、y均为已定义的类名,下列声明对象x1的语句不可能正确的是:()Apublicxxl=newy();Bpublicyxl=newx();Cxxl=newx();Dxxl=x();6.面向对象程序设计技术的特点是:()A可重用性B可维护性C表示方法的一致性D可重用性、可维护性、表示方法的一致性7.下列方法定义中,方法头不正确的是:()Apublicstaticx(doublea){…}Bpublicstaticintx(doubley){…}Cvoidx(doubled)Dpublicintx(){…}8.设已声明了一个类A的两个对象al、a2,为了初始化a1和a2,下面语句正确的是:()Aal=new();a2=new();Bal=Anew();a2=Anew();Cal,a2=newA();Dal=newA();a2=newA();9.构造方法何时被调用?()A类定义时B使用对象的变量时C调用对象方法时D创建对象时10.下列哪个类声明是正确的?()ApublicabstractclassCar{…}Babstractprivatemove(){…}Cprotectedprivatenumber;DabstractfinalclassHl{…}11.下列不属于面向对象程序设计的基本特征的是:()A抽象B封装C继承D静态12.请看下面的程序段classPerson{Stringname,department;intage;publicPerson(Stringn){name=n;}publicPerson(Stringn,inta){name=n;age=a;}publicPerson(Stringn,Stringd,inta){//doingthesameastwoargumentsversionofconstructer//includingassignmentname=n,age=a}}下面那一选项可以添加到“//doingthesame……”处:()APerson(n,a)Bthis(Person(n,a))Cthis(n,a)Dthis(name.age)13.()是一个特殊的方法,用于对类的实例变量进行初始化。A终止函数B构造函数C重载函数D初始化函数14.关于变量和它们范围的说法,正确的是:()A实例变量是类的成员变量B实例变量要用关键字static来声明C在一个方法执行时,定义在该方法的局部变量才被创建D局部变量必须在它们使用前初始化15.请看下面的程序段classTest{privateintm;publicstaticvoidfun(){//somecode…}}方法fun()如何来访问变量m:()A将privateintm改成protectedintmB将privateintm改成publicintmC将privateintm改成staticintmD将privateintm改成intm16.在Java中,方法main()将返回一个()值。AStringBintCcharDvoid17.有一个类A,对于其构造函数的声明正确的是()AvoidA(intx){…}BpublicA(intx){…}CAA(intx){…}DintA(intx){…}18.请看下面的程序段publicclassTest{longa[]=newlong[10];publicstaticvoidmain(Stringarg[]){System.out.println(a[6]);}}那一个选项是正确的:()A不输出任何内容B输出0C当编译时有错误出现D当运行时有错误出现19.关键字()表明一个对象或变量在初始化后不能修改。AextendsBfinalCthisDfinalizer20.声明为static的方法不能访问()类成员。A超类B子类C非staticD用户自定义类类的封装练习一、判断题1.在子类中可以用完全相同的signature重新定义一个超类方法,这称为方法的覆盖(override)。()2.final修饰的方法是不能被子类覆盖的,只能被重载。()3.声明为final的类不能是超类。()4.当一个超类成员不适合该子类时,子类会以恰当的方式重新定义它。()5.对子类实例化对象需要调用超类的构造函数进行初始化工作,完成对子类中的超类实例变量的初始化,则子类可以继承超类的构造函数。()6.在类的定义中如果不明确给出超类,那么默认超类就是Object类。()7.protected类型的实例变量或方法只能由声明该变量或方法的类本身及其子类访问。()8.Java的每个子类的构造函数都要显式的调用它的直接超类的构造函数。()9.超类对象的集合通常比它的任何一个子类对象集合大。()10.子类可以从多个超类中派生出来。()二、选择题1.为了区分重载多态中同名的不同方法,要求:()A参数名不同B返回值类型不同C采用不同的形式参数列表D选项ABC都对2.在某个类中定义一个方法:voidGetSort(intx),以下关于能否作为这个方法的重载错误的是:()AvoidGetSort(floatx){x*=x;}BintGetSort(doubley){return(int)(2*y);}CdoubleGetSort(intx,inty){returnx+y;}D都不能3.下列对继承的说法,哪个是正确的:()A子类只能继承父类public方法和状态B子类能继承父类的非私有方法和状态C子类能继承父类的所有方法和状态D子类只能继承父类的方法,而不继承状态4.定义类A如下:classA{inta,b,c;publicvoidB(intx,inty,intz){a=x;b=y;c=z;}}下面对方法B()的重载哪些是正确的:()ApublicvoidA(intxl,intyl,intz1){a=x;b=y;c=z;}BpublicvoidB(intx1,intyl,intz1){a=x;b=y;c=z;}CpublicvoidB(intx,inty){a=x;b=y;c=0;}DpublicB(intx,inty,intz){a=x;b=y;c=z;}5.下列程序的结果输出为:()classStrange{intj;Strange(){this(4);}Strange(intj){this.j=j;}}classMainStrange{publicstaticvoidmain(string[]args){Strangefunny=newStrange();System.out.println(“j=“+funny.j);}}Aj=2Bj=4Cj=6Dj=76.下列说法正确的是:()AJava中允许一个子类有多个父类B某个类是一个类的子类,它仍有可能成为另一个类的父类C一个父类只能有一个子类D继承关系最多不能超过4层7.下列说法正确的是:()A子类只能覆盖父类的方法,而不能重载B子类只能重载父类的方法,而不能覆盖C子类不能定义和父类同名同形参的方法,否则,系统将不知道使用哪个方法。D重载就是一个类中有多个同名但不同形参和方法体的方法8.关于构造函数的说法正确的是:()A一个类只能有一个构造函数B一个类可以有多个不同名的构造函数C构造函数与类同名D构造函数必须自己定义,不能使用父类的所有构造函数9.下面是有关子类调用父类构造函数的描述正确的是:()A子类定义了自己的构造函数,就不会调用父类的构造函数B子类必须通过super关键字调用父类有参数的构造函数C如果子类的构造没有通过super调用父类构造函数,那么子类会先调用子类自己的构造函数,再调用父类不含参数的构造函数。D创建子类的对象时,先调用子类自己的构造函数,然后调用父类的构造函数10.构造方法何时被调用?()A类定义时B使用对象的变量时C调用对象方法时D创建对象时11.如果超类不允许其通过继承的方式产生的子类访问它的某些成员,那么它必须以什么方式声明该成员。()ApublicBprivateCrotectedDstatic12.声明为final的变量不能在子类中覆盖,声明为()和()的方法是隐式的final。()ApublicprivateBprivateprotectedCprotectedstaticDstaticprivate13.继承性使▁▁成为可能,它不仅节省开发时间,而且也鼓励人们使用已经验证无误和调试过的高质量软件。()A节省时间B软件复用C软件管理D延长软件生命周期14.编译运行下面的程序,结果是()。PublicclassA{publicstaticvoidmain(String[]args){Bb=newB();b.test();}voidtest(){System.out.print(“A”);}}classBextendsA{27voidtest(){super.test();System.out.println(“B”);}}A产生编译错误B代码可以编译运行,并输出结果:ABC代码可以编译运行,但没有输出D编译没有错误,但会产生运行时异常15.已知类关系如下:classEmployee;classManagerextendsEmployeer;classDirectorextendsEmployee;则以下语句正确的是:()AEmployeee=newManager();BDirectord=newManager();CDirectord=newEmployee();DManagerm=newDirector();16.一个▁▁类的对象可以当作相应的▁▁类对象看待。()A子系统B用户系统C子超D超用户17.哪个方法是对如下方法的重载?()publicvoidexample(){...}Apubl
本文标题:java面向对象编程类的封装接口和基本类库练习题
链接地址:https://www.777doc.com/doc-2879143 .html