第四章面向对象基础.docx

上传人:b****1 文档编号:14888193 上传时间:2023-06-28 格式:DOCX 页数:18 大小:27KB
下载 相关 举报
第四章面向对象基础.docx_第1页
第1页 / 共18页
第四章面向对象基础.docx_第2页
第2页 / 共18页
第四章面向对象基础.docx_第3页
第3页 / 共18页
第四章面向对象基础.docx_第4页
第4页 / 共18页
第四章面向对象基础.docx_第5页
第5页 / 共18页
第四章面向对象基础.docx_第6页
第6页 / 共18页
第四章面向对象基础.docx_第7页
第7页 / 共18页
第四章面向对象基础.docx_第8页
第8页 / 共18页
第四章面向对象基础.docx_第9页
第9页 / 共18页
第四章面向对象基础.docx_第10页
第10页 / 共18页
第四章面向对象基础.docx_第11页
第11页 / 共18页
第四章面向对象基础.docx_第12页
第12页 / 共18页
第四章面向对象基础.docx_第13页
第13页 / 共18页
第四章面向对象基础.docx_第14页
第14页 / 共18页
第四章面向对象基础.docx_第15页
第15页 / 共18页
第四章面向对象基础.docx_第16页
第16页 / 共18页
第四章面向对象基础.docx_第17页
第17页 / 共18页
第四章面向对象基础.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

第四章面向对象基础.docx

《第四章面向对象基础.docx》由会员分享,可在线阅读,更多相关《第四章面向对象基础.docx(18页珍藏版)》请在冰点文库上搜索。

第四章面向对象基础.docx

第四章面向对象基础

一、判断题

1、在main方法中可以直接调用非静态的方法。

()

2、方法重载就是一个类中有多个同名但有不同形参和方法体的方法。

()

3、一个Java源程序可有多个类,但只仅有一个public类,而且源程序名与public类名相同。

()

4、Java的源代码中定义几个类,编译结果就生成几个以.class为后缀的字节码文件。

()

5、方法中的形参可以和方法所属类的属性同名。

()

6、Java类中不能存在同名的两个成员函数。

()

7、可以用new来创建一个类的实例,即“对象”。

()

8、Java中类的构造函数只能有一个。

()

9、类的静态变量被该类的所有对象共享。

10、不管定义与否,任何类都有一个不带参数的构造方法。

11、一个类可以访问另一个类的私有成员。

12、构造方法没有返回值,因此在定义构造方法时,其返回值类型必须声明为void。

13、对于类变量,可以通过类名直接访问,也可以通过该类的对象访问。

14、构造方法的名字必须与类名相同。

15、一个类的私有变量可以在同一个包的不同类中使用。

16、实例变量不能在类方法中直接引用,而类变量可以在实例方法中直接引用。

二、选择题

1、以下访问权限控制中,哪一个权限级别最高?

(A)

A、publicB、protectedC、privateD、友好

2、以public修饰的类如:

publicclassfish{…}则fish(A)

A)可被其它程序包中的类使用B)仅能被本程序包中的类使用

C)不能被任意其它类使用D)不能被其它类继承

3、下述那一个保留字不是类及类成员的访问控制符(C)

A)publicB)private

C)staticD)protected

4、下述哪个说法是不正确的?

()

A)局部变量在使用之前无需初始化,因为有该变量类型的默认值

B)类成员变量由系统自动进行初始化,无需初始化

C)参数的作用域就是所在的方法

D)for语句中定义的变量,当for语句执行完时,该变量就消亡了

5、使用如下哪个保留字可以使只有在定义该类的包中的其他类才能访问该类?

(D)

A、abstractB、privateC、protectedD、不使用保留字

6、编译一个定义了3个类和10个方法的Java源文件后,会产生多少个字符码文件,扩展名是什么?

(D)

A、13个字节码文件,扩展名是.classB、1个字节码文件,扩展名是.class

C、3个字节码文件,扩展名是.javaD、3个字节码文件,扩展名是.class

7、下列关于类、包和源文件的描述中,不正确的一项是(B)。

A、一个包可以包含多个类B、一个源文件中,可能有一个公共类

C、属于同一个包的类在默认情况下可以相互访问D、系统不会为源文件创建默认的包

8、下述哪一组方法,是一个类中方法重载的正确写法?

(A)

A、intaddValue(inta,intb){returna+b;}

floataddValue(floata,floatb){returna+b;}

B、intaddValue(inta,intb){value=a+b;}

floataddValue(inta,intb){return(float)(a+b);}

C、intaddValue(inta,intb){returna+1;}

intaddValue(inta,intb){returna+b;}

D、intaddValue(inta,intb){returna+b;}

intaddValue(intx,inty){returnx+y;}

9、关于方法的重载,下列说法哪一个是正确的?

A

A、方法的重载是指一个类中多个方法使用相同的名字,但参数不同。

B、方法的重载是指一个类中多个方法使用相同的名字,且参数相同。

C、方法的重载是指子类和父类中两个方法使用相同的名字,但参数不同。

D、方法的重载是指子类和父类中两个方法使用相同的名字,且参数相同。

10、下列关于类、包和源文件的说法中,错误的一项是(D)。

A、一个文件可以属于一个包B、一个包可包含多个文件

C、一个类可以属于一个包D、一个包只能含有一个类

11、下列说法哪个正确?

(C)

A.不需要定义类,就能创建对象

B.对象中必须有属性和方法

C.属性可以是简单变量,也可以是一个对象

D、属性必须是简单变量

12、下列关于作用域的说法中,正确的一个是(B)。

A、不同方法中声明的不同变量,可以互相访问

B、在不同方法中可以声明相同数据类型的同名局部变量

C、在同一个类中可以声明相同数据类型的同名类变量

D、在同一个程序块中可以声明相同数据类型的同名变量

13、下列描述中不正确的一项是()。

A、import语句告诉Java用户需要哪个包(package)中的类

B、所有的类必须实例化,才能调用它的数据成员和方法

C、package语句用于将源文件存入所指定的包中

D、System类不可能实例化,它的所有方法都是通过类变量来调用的

14、为了区分重载多态中同名的不同方法,要求(A)。

A、形式参数个数或者类型不同B、返回值类型不同

C、调用时用类名或对象名做前缀D、形式参数名称不同

15、下列关于变量作用域的说法中,不正确的一项是(D)。

A、类成员变量对应的作用域是类B、局部变量对应的作用域是方法和不同的语句块

C、方法参数对应的作用域是整个方法D、异常处理参数对应的作用域是整个类

16、下列说法中,正确的一个是(B)。

A、类成员变量在使用之前可以不初始化B、局部变量在使用之前可以不初始化

C、参数变量在使用之前必须初始化D、所有的变量在使用之前必须初始化

17、下面哪一项的方法调用能填入程序中的横线处?

()

classEx7{

staticvoidmethod1(){

System.out.println("inEx7");

}

}

classEx8{

voidmethod2(){

System.out.println("inEx8");

}

}

publicclassEx9{

publicstaticvoidmain(String[]args){

Ex9e1=newEx9();

e1.method3();

}

publicvoidmethod3(){

Ex7e2=newEx7();

Ex8e3=newEx8();

}

}A、method1();B、Ex7.method1();C、Ex7.method1();D、e2.Method1();

method2():

Ex8.method2();e3.method2();Ex8.method2();

18、下列说法中,不正确的是(B)

A、一个java源程序文件中,只能有一个public类。

B、一个java源程序文件中,只能有一个package语句。

C、一个java源程序文件中,可以有多个import语句。

D、一个java源程序文件中,只能有一个类中可以有main方法。

19、若编译和运行下列代码,出现的结果将是(B)

classMyClass{

  inti=0;

publicintmyMethod(intx){

    returni+x;

  }

  publicstaticvoidmain(Stringargs[]){

    System.out.println(myMethod(10));

}

}

A、0B、10C、编译出错D、以上答案都不对

20、为AB类的一个无形式参数无返回值的方法method书写方法头,使得用类名AB作为前缀就可以调用它,该方法头的形式为(A)

A)staticvoidmethod()B)publicvoidmethod()

C)finalvoidmethod()D)abstractvoidmethod()

21、(C)下面程序中类ClassDemo中定义了一个静态变量sum,分析程序段的输出结果。

}classClassDemo{

publicstaticintsum=1;

publicClassDemo()

{sum=sum+5;}

}

classClassDemoTest{

publicstaticvoidmain(Stringargs[]){

ClassDemodemo1=newClassDemo();

ClassDemodemo2=newClassDemo();

System.out.println(demo1.sum);

}

A)0B)6C)11D)2

22、关于方法main()的说法哪个正确?

( C )

A.方法main()只能放在公共类中

B.main()的头定义可以根据情况任意更改

C.一个类中可以没有main()方法

D.所有对象的创建都必须放在main()方法中

23、给出如下的程序,A-E选项中与构造方法ConstOver重载的两个构造方法是:

CE。

publicclassConstOver{

publicConstOver(intx,inty,intz){}

}

A.ConstOver(){}

B.ProtectedintConstOver(){}

C.PrivateConstOver(intz,inty,bytex){}

D.publicObjectConstOver(intx,inty,intz){}

E.publicvoidConstOver(bytex,bytey,bytez){}

24、对象使用时,下面描述错误的是(C)

(A)通过“.”运算符调用成员变量和方法

(B)通过成员变量的访问权限设定限制自身对这些变量方法的调用

(C)将一个对象申明为类的成员时,必须在使用前为其分配内存

(D)在方法中使用对象作为参数时,传递的是对象的地址

25、给出如下代码:

classTest{

privateintm;

publicstaticvoidfun(){

//somecode...

}

}

如何使成员变量m被函数fun()直接访问(B)

(A)将privateintm改为protectedintm

(B)将privateintm改为publicintm

(C)将privateintm改为staticintm

(D)将privateintm改为intm

26、MAX_LENGTH是int型public成员变量,变量值保持为常量100,用简短语句定义这个变量。

(D)

(A)publicintMAX_LENGTH=100;

(B)finalintMAX_LENGTH=100;

(C)finalpublicintMAX_LENGTH=100;

(D)publicfinalintMAX_LENGTH=100.

27、构造方法何时被调用(B)

(A)类定义时           (B)创建对象时

(C)调用对象方法时        (D)使用对象的变量时

28、指出下列程序运行的结果( D)

publicclassExample{

Stringstr=newString("good");

char[]ch={'a','b','c'};

publicstaticvoidmain(Stringargs[]){

Exampleex=newExample();

ex.change(ex.str,ex.ch);

System.out.print(ex.str+"and");

System.out.print(ex.ch);

}

publicvoidchange(Stringstr,charch[]){

str="testok";

ch[0]='g';

}

}

(A)goodandabc       (B)goodandgbc

(C)testokandabc      (D)testokandgbc

29、给出下面代码段

1)publicclassTest{

2)intm,n;

3)publicTest(){}

4)publicTest(inta){m=a;}

5)publicstaticvoidmain(Stringarg[]){

6)Testt1,t2;

7)intj,k;

8)j=0;k=0;

9)t1=newTest();

10)t2=newTest(j,k);

11)}

12)}

哪行将引起一个编译时错误?

(D)

(A)line3               (B)line5

(C)line6               (D)line10

30、函数重载是指(A)

(A)两个或两个以上的函数取相同的函数名,但形参的个数或类型不同

(B)两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同

(C)两个以上的函数名字不同,但形参的个数或类型相同

(D)两个以上的函数取相同的函数名,并且函数的返回类型相同

31、对于下列代码:

publicclassParent{

publicintaddValue(inta,intb){

ints;

s=a+b;

returns;

}

}

classChildextendsParent{

}

下述哪些方法可以加入类Child (D)

(A)intaddValue(inta,intb){//dosomething...}

(B)publicvoidaddValue(inta,intb){//dosomething...}

(C)publicintaddValue(inta){//dosomething...}

(D)publicintaddValue(inta,intb)throwsMyException{//dosomething...}

32、对于下列代码:

1)classPerson{

2)publicvoidprintValue(inti,intj){//...}

3)publicvoidprintValue(inti){//...}

4)}

5)publicclassTeacherextendsPerson{

6)publicvoidprintValue(){//...}

7)publicvoidprintValue(inti){//...}

8)publicstaticvoidmain(Stringargs[]){

9)Persont=newTeacher();

10)t.printValue(10);

11)}

第10行语句将调用哪行语句?

(D)

(A)line2            (B)line3

(C)line6            (D)line7

33、如果类中的成员变量只可以被同一包访问,则使用如下哪个约束符 D

(A)private         (B)public

(C)protected        (D)default

三、程序填空题

1、以下为一个java的完整程序,它定义了一个类Car,并在程序中创建了一个该类的对象DemoCar,调用该对象的set_number方法设置车号属性为3388,调用该对象的show_number方法输出车号。

//Car.java

classCar

{intcar_number;

voidset_number(intcar_num)

{car_number=________;

}

voidshow_number()

{System.out._______(“MycarNo.is:

”+car_number);

}

}

//CarDemo.java

classCarDemo

{publicstaticvoidmain(Stringargs[])

{Carjeep=______Car();

jeep.set_number(_______);

jeep._________();

}

}

2、定义类Stu,并把该类放在当前目录下的包com中:

包括的成员变量有:

常量classid,类变量school,公共成员变量id和name,私有成员变量age。

包括的方法有:

一个具有二个参数的构造方法;公共静态方法getSchool();主方法。

(1)//把该类放在当前目录下的包com中

publicclassStu{

(2)//字符串常量classid

(3)//字符串类变量school,并把其值初始化为“YEU”

privateintage;

publicStringid;

publicStringname;

(4)//构造方法声明,接收二个参数ids和names

{

id=ids;

name=names;

}

(5)//公共静态方法getSchool()的声明

{

returnschool;

}

//主方法

publicstaticvoidmain(String[]args){

System.out.println(Stu.getSchool());

System.out.println(Stu.school);

}

}

四、程序阅读题

1、下面程序运行结果____________

publicclassTom

{privatefloatweight;

privatestaticStringname;

publicvoidsetWeight(floatweight){

this.weight=weight;

}

privatevoidout(){

System.out.println(name+"体重:

"+weight+"斤");

}

publicstaticvoidmain(String[]args){

Tom.name="汤姆猫";

Tomcat=newTom();

cat.setWeight(20);

cat.out();

}

}

2、阅读下面的程序:

publicclasstest

{

publicstaticvoidmain(Stringargv[])

{

Birdb=newBird();

b.Fly(3);

}

}

classBird{

staticintType=2;

privatevoidFly(intan_Type){

Type=an_Type;

System.out.println("Flying..."+Type);

}

}

上面的程序编译是否成功?

如果编译出错,指出哪行出错,并说明理由;如果编译正确,运行结果是什么?

3、阅读下面的程序:

classValHold{

publicinti=10;

}

publicclassObParm{

publicstaticvoidmain(Stringargv[]){

ObParmo=newObParm();

o.amethod();

}

publicvoidamethod(){

inti=99;

ValHoldv=newValHold();

v.i=30;

another(v,i);

System.out.print(v.i);

}

publicvoidanother(ValHoldv,inti){

i=0;

v.i=20;

ValHoldvh=newValHold();

v=vh;

System.out.print(v.i);

System.out.print(i);

}

}

上面的程序编译是否成功?

如果编译出错,指出哪行出错,并说明理由;如果编译正确,运行结果是什么?

五、程序改错题

1、阅读下面的程序,修改程序中错误的地方(提示:

共三处错误)

classPerson{

Stringname;

intage;

Stringsex;

publicPerson(Stringname,intage,Stringsex){

this.name=name;

this.age=age;

this.sex=sex;

}

publicvoidtoString(){

return"name:

"+name+"age:

"+age+"sex:

"+sex;

}

}

publicclassTestPerson{

publicstaticvoidmain(Stringargs[]){

Personp=newPerson();

p.name="张三";

p.age=20;

p.sex="男";

System.out.println(Person.tostring());

}

}

六、编程题

1、一个Point(点)类,该类具有x,y(表示点的横、纵坐标)两个属性,并定义两个个构造方法,一个无参数,将x,y均设置为0,另一对坐标值为参数,设置x,y为给定坐标值。

该类的show方法输出该点的坐标值。

根据以下的设计要求编写java源代码。

(15分)

类名:

Student

变量(访问权限均为private):

name(String)//姓名

age(int)//年龄

方法:

构造方法(没有参数,设置姓名为“无名氏”,年龄为20)

setName(有一个名为name的String型参数,将name的值设为这个新值),

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

当前位置:首页 > 自然科学 > 物理

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

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