面向对象复习材料.docx

上传人:b****1 文档编号:14913433 上传时间:2023-06-28 格式:DOCX 页数:26 大小:61.51KB
下载 相关 举报
面向对象复习材料.docx_第1页
第1页 / 共26页
面向对象复习材料.docx_第2页
第2页 / 共26页
面向对象复习材料.docx_第3页
第3页 / 共26页
面向对象复习材料.docx_第4页
第4页 / 共26页
面向对象复习材料.docx_第5页
第5页 / 共26页
面向对象复习材料.docx_第6页
第6页 / 共26页
面向对象复习材料.docx_第7页
第7页 / 共26页
面向对象复习材料.docx_第8页
第8页 / 共26页
面向对象复习材料.docx_第9页
第9页 / 共26页
面向对象复习材料.docx_第10页
第10页 / 共26页
面向对象复习材料.docx_第11页
第11页 / 共26页
面向对象复习材料.docx_第12页
第12页 / 共26页
面向对象复习材料.docx_第13页
第13页 / 共26页
面向对象复习材料.docx_第14页
第14页 / 共26页
面向对象复习材料.docx_第15页
第15页 / 共26页
面向对象复习材料.docx_第16页
第16页 / 共26页
面向对象复习材料.docx_第17页
第17页 / 共26页
面向对象复习材料.docx_第18页
第18页 / 共26页
面向对象复习材料.docx_第19页
第19页 / 共26页
面向对象复习材料.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

面向对象复习材料.docx

《面向对象复习材料.docx》由会员分享,可在线阅读,更多相关《面向对象复习材料.docx(26页珍藏版)》请在冰点文库上搜索。

面向对象复习材料.docx

面向对象复习材料

一、填空题

1.如果一个方法不返回任何值,则该方法的返回值类型为。

2.如果子类中的某个方法名、返回值类型和与父类中的某个方法完全一致,则称子类中的这个方法覆盖了父类的同名方法。

3.接口中所有的属性均为___、和_的。

4.方法是一种仅有方法声明,没有具体方法体和操作实现的方法,该方

法必须在类之中定义。

5.在Java程序中,通过类的定义只能实现重继承,但通过的定义可以实现多重继承关系。

6.一般Java程序的类主体由两部分组成:

一部分是,另一部分是。

7.分别用关键字来定义类,用关键字来分配实例存储空间。

8.当一个类的修饰符为时,说明该类不能被继承,即不能有子类。

9.在Java中,能实现多重继承效果的方式是。

二、选择题

1.方法内定义的变量()。

A.一定在方法内所有位置可见B.可能在方法的局部位置可见

C.在方法外可以使用D.在方法外可见

2.方法的形参()。

A.可以没有B.至少有一个

C.必须定义多个形参D.只能是简单变量

3.return语句()。

A.不能用来返回对象B.只可以返回数值C.方法都必须含有D.一个方法中可以有多个

4.main()方法的返回值类型是()。

A.booleanB.intC.voidD.static

5.编译并运行下面的程序,运行结果是()。

publicclassA{

publicstaticvoidmain(Stringargs[]){

Aa=newA();

a.method(8);

}

voidmethod(inti){

System.out.println(“int:

”+i);

}

voidmethod(longi){

System.out.println(“long:

”+i);

}

A.程序可以编译运行,输出结果为:

“int:

8”

B.程序可以编译运行,输出结果为:

“long:

8”

C.程序有编译错误,因为两个method()方法必须定义为静态(static)的

D.程序可以编译运行,但是没有输出

6.能作为类及其成员的修饰符是()。

A.interfaceB.classC.protectedD.public

7.下列方法定义中,方法头不正确的是()。

A.publicstaticx(doublea){…}B.publicstaticintx(doubley){…}

C.voidx(doubled){…}D.publicintx(){…}

8.构造方法在()时被调用。

A.类定义时B.使用对象的变量时

C.调用对象方法时D.创建对象时

9.下列哪个类声明是正确的()。

A.publicabstractclassCar{…}B.abstractprivatemove(){…}

C.protectedprivatenumber;D.abstractfinalclassH1{…}

10.下列不属于面向对象程序设计的基本特征的是()。

A.抽象B.封装C.继承D.静态

11.请看下面的程序段

classPerson{

Stringname,department;

intage;

publicPerson(Stringn){name=n;}

publicPerson(Stringn,inta){name=n;age=a;}

publicPerson(Stringn,Stringd,inta){

//doingthesameastwoargumentsversionifconstructer

}

下面那个选项可以添加到//doingthesame,,处()

A.Person(n,a)B.this(Person(n,a))C.this(n,a)D.this(name.age)

12.请看下面的程序段

classTest{

privateintm;

publicstaticvoidfun(){

//somecode

}

}

方法fun()如何来访问变量m()

A.将privateintm改成protectedintm

B.将privateintm改成publicintm

C.将privateintm改成staticintm

D.将privateintm改成intm

13.有一个类A,对于其构造函数的声明正确的是(。

A.voidA(intx){,}B.publicA(intx){,}

C.AA(intx){,}D.intA(intx){,}

14.请看下面的程序段

publicclassTest{

longa[]=newlong[10];

pubicstaticvoidmain(Stringargs[]){

System.out.println(a[6]);

}

}

哪一个选项是正确的()。

A.不输出任何内容B.输出0

C.当编译时有错误出现D.当运行时有错误出现

15.关键字()表明一个对象或变量在初始化后不能修改。

A.extendsB.finalC.thisD.finalize

16.声明为static的方法不能访问()类成员。

A.超类B.子类C.非staticD.用户自定义类

17.定义类A如下:

classA{

inta,b,c;

publicvoidB(intx,inty,intz){a=x;b=y;c=z;}

}

下面对方法B的重载哪些是正确的()。

A.publicvoidA(intx1,inty1,intz1){a=x1;b=y1;c=z1;}

B.publicvoidB(intx1,inty1,intz1){a=x1;b=y1;c=z1;}

C.publicvoidB(intx,inty){a=x;b=y;c=0;}

D.publicB(intx,inty,intz){a=x;b=y;c=z;}

18.编译运行下面的程序,结果是()。

publicclassA{

publicstaticvoidmain(Stringargs[]){

Bb=newB();

b.test();

}

voidtest(){

System.out.print(“A”);

}

}

classBextendsA{

voidtest(){

super.test();

System.out.print(“B”);

}

}

A.产生编译错误B.代码可以编译运行,并输出结果:

AB

C.代码可以编译运行,但没有输出D.编译没有错误,但会产生运行时异常

19.已知类关系如下:

ClassEmployee{}

ClassManagerextendsEmployee{}

ClassDirectorextendsEmployee{}

则下列语句正确的是:

()。

A.Employeee=newManager();

B.Directord=newManager();

C.Directord=newEmployee();

D.Managerm=newDirector();

20.接口是Java面向对象的实现机制之一,以下说法正确的是()。

A.Java支持多重继承,一个类可以实现多个接口

B.Java只支持单重继承,一个类可以实现多个接口

C.Java只支持单重继承,但一个类只可以实现一个接口

D.Java支持多重继承,但一个类只可以实现一个接口

21.下列方法的声明中不合法的是()。

A.floatarea(){…}B.voidarea(){…}

C.area{…}D.intarea(intr){…}

22、下面哪个包是编程时不需要导入就可以直接使用的()。

A.B.java.langC.java.sqlD.java.util

23、在子类构造方法的哪个地方可以调用其父类的构造方法()。

A.任何地方

B.构造方法的第一条语句

C.构造方法的最后一条语句

D.无法在子类构造方法中调用父类的构造方法

24、关于Java中的继承,下列说法错误的是()。

A.继承是面向对象编程的核心特征,通过继承可以更有效地组织程序结构。

B.继承使得程序员可以在原有类的基础上很快设计出一个功能更强的新类,而不必

从头开始,避免了工作上的重复。

C.每一次继承时,子类都会自动拥有父类的属性和方法,同时也可以加入自己的一

些特性,使得它更具体、功能更强大。

D.继承一般有多重继承和单一继承两种方式,在单一继承中每一个类最多只有一个

父类,而多重继承则可以有多个父类。

Java中的类都采用多重继承。

25、当方法中的局部变量与成员变量同名时,必须使用下列哪一个关键字指出成员

变量()。

A.staticB.superC.thisD.new

26、什么样的方法不能被重写()。

A.私有(private)方法B.最终(final)方法

C.受保护(protected)的方法D.以上都不对

27、下列有关抽象类与接口的叙述中正确的是哪一个()。

A.抽象类中必须有抽象方法,接口中也必须有抽象方法

B.抽象类中可以有非抽象方法,接口中也可以有非抽象方法

C.含有抽象方法的类必须是抽象类,接口中的方法必须是抽象方法

D.抽象类中的变量定义时必须初始化,而接口中不是

28、从下列程序中你发现了几处错误()。

abstractclassA{

abstractvoidf(){};

publicabstractvoidk();

}

classBextendsA{

protectedvoidf(){}

voidk(){

System.out.print("Iamsubclass");

}

publicstaticvoidmain(String[]args){

Aa=newA();

a.f();

a.k();

}

}

A.1B.2C.3D.4

29、下列程序运行的结果是()。

interfaceInterfaceA{

Strings="good";

voidf();

}

classClassAimplementsInterfaceA{

publicvoidf(){

System.out.print(s);

}

}

classClassB{

voidg(InterfaceAa){

a.f();

}

}

publicclassE{

publicstaticvoidmain(String[]args){

ClassBb=newClassB();

b.g(newClassA());

}

}

A.goodB.编译正确,但无运行结果

C.编译错误:

b.g(newClassA())D.以上都不对

30、下列类的声明中不合法的是()。

A.classPeople(){,}B.class植物{,}

C.classA{,}D.publicclass共有类{,}

31、能作为类的修饰符,也能作为类成员的修饰符的是()。

A.publicB.extendsC.FloatD.static

32、试完成下述程序片段()。

publicclassPoint{

intx,y;

publicPoint(intx,inty){

()=x;

()=y;

}

......

}

A.Point.xPoint.yB.this.xthis.y

C.super.xsuper.yD.无解

33、在JAVA中,下列说法正确的是()。

A.一个子类可以有多个父类,一个父类也可以有多个子类

B.一个子类可以有多个父类,但一个父类只可以有一个子类

C.一个子类只可以有一个父类,但一个父类可以有多个子类

D.上述说法都不对

34、Father和Son是两个java类,下列哪一选项正确的标识出Father是Son的父类

()

A.classSonimplementsFatherB.classFatherimplementsSon

C.classFatherextendsSonD.classSonextendsFather

35、重载指的是方法具有相同的名字,但这些方法的参数必须不同。

下列哪种说法

不属于方法参数的不同()。

A.形式参数的个数不同。

B.形式参数的类型不同。

C.形式参数的名字不同。

D.形式参数类型的排列顺序不同。

36、关于接口的定义和实现,以下描述正确的是()。

A.接口定义的方法只有定义没有实现

B.接口定义中的变量都必须写明final和static

C.如果一个接口由多个类来实现,则这些类在实现该接口中的方法时采用统一的代

D.如果一个类实现接口,则必须实现该接口中的所有方法,但方法未必申明为public

37.finally语句块中的代码()

A.总是被执行

B.当try语句块后面没有catch时,finally中的代码才会执行

C.异常发生时才执行

D.异常没有发生时才被执行

38.抛出异常应该使用的关键字是()

A.throw

B.catch

C.finally

D.throws

39.自定义异常类时,可以继承的类是()

A.Error

B.Applet

C.Exception及其子类

D.AssertionError

40.在异常处理中,将可能抛出异常的方法放在()语句块中

A.throws

B.catch

C.try

D.finally

41.对于try{,,}catch子句的排列方式,下列正确的一项是()

A.子类异常在前,父类异常在后

B.父类异常在前,子类异常在后

C.只能有子类异常

D.父类异常与子类异常不能同时出现

42.使用catch(Exceptione)的好处是()

A.只会捕获个别类型的异常

B.捕获try语句块中产生的所有类型的异常

C.忽略一些异常

D.执行一些程序

三、阅读程序题

1、写出运行结果:

publicclassComputer{

Stringmainbord,cpu;

publicComputer(Strings1,Strings2){

mainbord=s1;

cpu=s2;

}

publicstaticvoidmain(String[]args){

Computerc=newComputer("华硕","Intel");

System.out.println("mainbord:

"+c.mainbord+",cpu:

"+c.cpu);

}

}

2、写出运行结果:

publicclassExamA{

privatestaticintarr[]=newint[5];

publicstaticvoidmain(Stringargs[]){

for(inti=arr.length-1;i>=0;i--)

arr[i]=2*i+1;

Stringoutput="0";

intsum=0;

for(inti=0;i

sum+=arr[i];

output+="+"+arr[i];

}

output+="="+sum;

System.out.println(output);

System.exit(0);voidshow(){

System.out.println("a="+a+"b="+b+"c="+c);

}

}

}

3、写出运行结果:

publicclassPerson{

Stringname;

intage;

publicPerson(Stringname,intage){

this.name=name;

this.age=age;

}

publicstaticvoidmain(String[]args){

Personc=newPerson("Peter",17);

System.out.println(c.name+"is"+c.age+"yearsold!

");

}

}

4、写出运行结果:

publicclassabc{

publicstaticvoidmain(Stringargs[]){

SubSubClassx=newSubSubClass(10,20,30);

x.show();

}

}

classSuperClass{

inta,b;

SuperClass(intaa,intbb){

a=aa;

b=bb;

}

voidshow(){

System.out.println("a="+a+"b="+b);

}

}

classSubClassextendsSuperClass{

intc;

SubClass(intaa,intbb,intcc){

super(aa,bb);

c=cc;

}

}

classSubSubClassextendsSubClass{

inta;

SubSubClass(intaa,intbb,intcc){

super(aa,bb,cc);

a=aa+bb+cc;

}

voidshow(){

System.out.println("a="+a+"b="+b+"c="+c);

}

}

四、程序填充题

1、下面是一个类的定义,请将其补充完整

class______{

Stringname;

intage;

Student(______name,inta){

____.name=name;

age=a;

}

}

2、下面是一个类的定义,请将其补充完整

class______{

Strings;

______inta=3;

A(Strings){

this.s=s;

}

staticintgetA(){

}

}

五、编程题

1.按要求编写一个Java应用程序:

(1)定义一个接口CanCry,描述会吼叫的方法publicvoidcry()。

(2)分别定义狗类(Dog)和猫类(Cat),实现CanCry接口。

实现方法的功能分别为:

打印输出“我是狗,我的叫声是汪汪汪”、“我是猫,我的叫声是喵喵喵”。

(3)定义一个主类G,

①定义一个voidmakeCry(CanCryc)方法,其中让会吼叫的事物吼叫。

②在main方法中创建狗类对象(dog)、猫类对象(cat)、G类对象(g),用makecry方法,让狗和猫吼叫。

interfaceCanCry{

publicvoidcry();

}

classDogimplementsCanCry{

publicvoidcry(){

System.out.println("我是狗,我的叫声是汪汪汪");

}

}

classCatimplementsCanCry{

publicvoidcry(){

System.out.println("我是猫,我的叫声是喵喵喵");

}

}

publicclassG{

staticvoidmakeCry(CanCryc){

c.cry();

}

publicstaticvoidmain(String[]args){

Dogdog=newDog();

Catcat=newCat();

makeCry(dog);

makeCry(cat);

}

}

2、编写一个Java程序,并满足如下要求:

1)编写一个Car类,具有:

属性:

品牌(mark)——String类型

功能:

驾驶(voiddrive())

2)定义Car类的子类SubCar,具有:

属性:

价格(price)、速度(speed)——int型

功能:

变速(voidspeedChange(intnewSpeed)),把新速度赋给speed

3)定义主类E,在其main方法中创建SubCar类的两个对象:

aodi和benchi的对象并测试其对象的特性。

4)输出效果如下:

classCar{

Stringmark;

publicCar(Stringmark){

this.mark=mark;

System.out.println("\n本车的品牌是"+mark);

}

voiddrive(){}

}

classSubCarextendsCar{

intprice,speed;

publicSubCar(Stringmark,intp,ints){

super(mark);

price=p;

speed=s;

System.out.println(mark+"车的价格是"+price);

}

voiddrive(){

System.out.println(mark+"原来的速度是"+speed);

}

voidspeedChange(intnewSpeed){

speed=newSpeed;

System

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2