《java面向对象试题.pdf》由会员分享,可在线阅读,更多相关《java面向对象试题.pdf(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-OOP 考试题考试时间:120 分钟考试总分:100 分一、一、选择题选择题(不定项选择不定项选择)(2)(2 分分/题题*37=74*37=74 分分)1.类 A,B 的定义如下:class A private int a=100;A()System.out.print(A();System.out.println(a);class B extends A private int a=200;B()System.out.print(B();System.out.println(a);运行下面的代码:new B();输出的结果是:()。A.A()100B()200B.A()200B()200
2、C.B()200A()100D.可修编-B()200A()2002.程序执行的结果是:()。public class Pointint y=7;public void step(int y)y+=y;System.out.println(y);public static void main(String args)Point p=new Point();p.step(10);A.14B.20C.10D.173.下面代码运行的结果是()class FString name=“name_F”;private int age;public F()class C extends FString nam
3、e=“name_C”;public C()public static void main(String args)F f=new C();C c=new C();可修编-System.out.println(f.name+”“+c.name);A.name_Cname_CB.name_Cname_FC.name_Fname_CD.name_Fname_F4.(单选题)程序的执行结果是:()。public class Question private intnum;public static void main(String args)Question q=new Question();q.nu
4、m=13;update(q);System.out.println(q.num);public static void update(Question q)q.num=9;A.13B.9C.0D.45.class Basestatic void test()System.out.println(“Base.test()”);public class Child extends Base可修编-static void test()System.out.println(“Child.test()”);public static void main(String args)Base base=new
5、 Child();Child child=new Child();base.test();child.test();程序运行的结果是()A.Child.test()Child.test()B.Child.test()Base.test()C.Base.test()Child.test()D.Base.test()Base.test()6、(单选题)程序执行的结果是:()。public class Answer public static void main(String args)int score=20;Answerans=new Answer();ans.add(score);System
6、.out.println(main:score=+score);voidadd(int score)System.out.println(add:score=+score+);A.add:score=21main:score=21B.add:score=20main:score=21C.add:score=21可修编-main:score=20D.add:score=20main:score=207.public class Foo public static void main(Stringargs)public static void main(Stringargs)Foo1 foo1=n
7、ew Foo1();Foo1 foo1=new Foo1();System.out.println(foo1.a);System.out.println(foo1.a);int a=1int a=10;public Foo()add();public void add()a+;System.out.println(a);class Foo1 extends Fooint a=11;public Foo1()public void add()public void add()System.out.println(a);System.out.println(a);a+;a+;System.out.
8、println(a);System.out.println(a);程序运行结果()A.0 1 10B.0 1 11C.1 1 11可修编-D.1 1 108.(单选题)下列代码编译或运行的结果是:()。public classSnowpublic Stringjump(int x,int y)return jump one;public String jump(int vals)return jump two;public static void main(String args)Snow s=new Snow();System.out.println(s.jump(4,5);A.public
9、 String jump(int vals)行,编译出错B.System.out.println(s.jump(4,5);行,抛出运行时异常C.输出:jump oneD.输出:jump two9.(单选题)关于下列代码说确的是:()。public classStorm public voidfind()public String find()return find;public double find(int x)return 2.0;可修编-A.无编译错误B.代码 public String find()行,出现编译错误C.代码 public double find(int x)行,出现编译
10、错误D.代码 return find;行处出现编译错误10.下列哪些叙述是正确的()A在一个类中,方法不能与类名相同Babstract 可以修饰属性、方法和类C实例方法可直接调用本类的 static 方法和非 static 方法Dstatic 方法不能调用非 static 方法11.(单选题)请看下列代码:class ClassA class ClassB extends ClassA class ClassC extends ClassA public class Testpublic static void main(String args)ClassA p0=new ClassA();C
11、lassB p1=new ClassB();ClassC p2=new ClassC();ClassA p3=new ClassB();ClassA p4=new ClassC();下列选项中放置在处,使程序编译正确的是:()。A.p0=p1;B.p1=p2;C.p2=p4;D.p2=(ClassC)p1;12.以下说确的是()A子类不能继承父类的构造方法可修编-B子类的构造方法可以访问父类的构造方法C子类不可直接访问父类的私有属性D子类可以重写父类的所有方法13.关于接口,以下说法错误的是()A接口中可以定义非抽象方法B接口可以继承多个接口C接口中可以定义没有初始化的变量D接口可以实现接口1
12、4(单选题)请看下列代码编译和运行的结果是:()。public class Teacher private String name=sun;public static void main(String args)Teacher teachers=new Teacher2;System.out.println(teachers0.name);System.out.println(teachers.length);A.sun 2B.null 2C.null 1D.运行时抛出 NullPointerException 异常15.class Baseprivate int base=10;public
13、 Base()test(base);System.out.println(base);void test(int base)+this.base;可修编-public class Childprivate int child=20;public Child()test(child);System.out.println(child);void test(int child)-this.child;public static void main(String args)new Child();程序运行的结果是()A.19B.1119C.1120D.101916、(单选题)下列代码编译和运行的结果
14、是:()。class Person String name=;public Person(String name)this.name=name;class Employee extends Person String empNO=0000;public Employee(String empNO)this.empNO=empNO;可修编-public class EmployeeTest public static void main(String args)Employee e=new Employee(1109);System.out.println(e.empNO);A.输出:0000B
15、.输出:1109C.代码 public Employee(String empNO)行,出现编译错误D.抛出运行时异常17.在 Java 中,关于 final 关键字的说确的是()A.final 修饰的变量,一旦赋值就不能被更改B.final 修饰的类只能被一个子类继承C.final 修饰的方法,不能在子类中被覆盖D.final 修饰的方法,不能被子类继承18.(单选题)下列代码编译和运行的结果是:()。class A public void start()System.out.println(A Start);public class B extends A public void star
16、t()可修编-System.out.println(B Start);public static void main(String args)(A)new B().start();A.输出:A StartB.输出:B StartC.输出:A StartB StartD.编译错误19.1)public interface Test2)static public final int num=10;3)public staticvoid add();4)public String test();5)public long delete();6)关于上面的代码,以下说法错误的是()A第 2)行代码有编
17、译错误B第 3)行代码没有编译错误C第 4)行代码有编译错误D第 5)行代码有编译错误20.(单选题)关于下列代码说确的是:()。public interface A 可修编-public void doSomething(String thing);interface B interface C extends A,B interface D public void doIt(String thing);class AImpl implements C,Dpublic void doSomething(String msg)public void doIt(String thing)A.所有
18、类和接口都编译成功B.接口 A 编译失败C.类 AImpl 编译失败D.接口 C 编译失败21.关于类、抽象类和接口,以下说确的是()A接口可以继承多个接口B抽象类不能实现接口C一个类只能继承一个类,但可以实现多个接口D抽象类实现接口,可以不实现接口的方法22.(单选题)关于下列代码说确的是:()。public class Cell private final int id;public Cell(int id)this.id=id;public void updateId(int id)this.id=id;可修编-public static void main(String args)Ce
19、ll cell=new Cell(1001);cell.updateId(1002);System.out.println(cell.id);A.编译错误B.运行时异常抛出C.运行后,cell 对象属性 id 的值没有改变,仍然是 1001D.运行后,cell 对象属性 id 的值改变成新的值 100223、(单选题)下列选项中,不属于 Java 的访问控制修饰符的是:()。A.privateB.protectedC.friendlyD.public24.下面关于变量的说确的是()A.实例变量可以通过类名直接调用B.类变量可以通过类名直接调用C.Java 中的参数传递都是值传递D.在不同的作用
20、域不能定义相同的变量25.(单选题)下面关于 import,class 和 package 的声明顺序正确的是:()。A.package,import,classB.class,import,packageC.import,package,classD.package,class,import26.下列代码有编译错误的是第()行1)public class Test2)public static void main(String args)3)int arr1=new int12;4)char arr2=new char;可修编-5)int arr3=;6)Object obj=new Obj
21、ect4;7)Object obj1=new object9;8)9)A.5)B.5)7)C.4)7)D.4)27.(多选题)有一个名为 Product 的类,下列方法中属于该类的构造方()。A.public Product()B.public Product(String name)C.public void Product()D.public void Product(String name)28.下列代码的运行结果是()public class Testprivate int num;private static Test test;public Test(int num)this.nu
22、m=+num;staticint num=16;test=new Test(num);+test.num;public static void main(String args)test=new Test(13);System.out.println(test.num);可修编-法的是:-A.14B.15C.16D.1729.(多选题)请看下列代码:public class Tetromino protected int move(int x)return 0;class T extends Tetromino 在处填入选项中的代码,使 T 类没有编译错误的是:()。A.public int
23、move(int x)return 0;B.private int move(int x)return 0;C.private int move(long x)return 0;D.protected long move(int x)return 0;30.仔细分析下列代码,请指出错误的行()。public class SomeThingprivate String str;public int addOne(final int x)return+x;A.public class SomeThingB.private String str;C.public int addOne(final i
24、nt x)D.return+x;31(多选题)下列关于 JVM 的存结构描述正确的是:()。可修编-A.类的各种信息在堆中保存B.栈用于存放程序运行过程当中所有的局部变量C.堆一般用于存储使用 new 关键字创建的对象D.类是 JVM 的存结构32.下列代码的运行结果是()public static void main(String args)String str=420;str+=42;System.out.print(str);A.42B.420C.462D.4204233.(多选题)请看下列代码:public class Foo static void alpha()/*more cod
25、e here*/void beta()/*more code here*/下列说确的是:()。A.Foo.beta()是调用 beta 方法的正确方式B.Foo.alpha()是调用 alpha 方法的正确方式C.beta 方法可以直接调用 alpha 方法D.alpha 方法可以直接调用 beta 方法34.查看如下代码:public class Foo public void method(String str,int age)下列选项中,和 Foo 类中 method 方法重载的方法是()。可修编-A.public int method(String str,int age)B.publ
26、ic void method(int year,String s)C.public intmethod(int year,String s)D.public int method(String str)35.下列代码的输出结果是:()。public class StaticFoo intnum;static int x;public static void main(String args)StaticFoo foo1=new StaticFoo();foo1.num+;foo1.x+;StaticFoo foo2=new StaticFoo();foo2.num+;foo2.x+;Stati
27、cFoo foo3=new StaticFoo();foo3.num+;foo3.x+;StaticFoo.x+;System.out.print(foo3.num+,);System.out.println(foo3.x);A.3,3B.1,3C.3,4D.1,436.下面关于 interface,叙述错误的是:(A.一个 interface 可以继承多个 interfaceB.接口中的方法可以由 private 修饰C.interface 中可以定义 static final 常量D.interface 中可以无任何方法定义可修编-)-37.下列代码的输出结果是:()。public cla
28、ss A public void info()System.out.println(A info);public class B extends Apublic void info()System.out.println(B info);public static void main(String args)A a=new B();a.info();A.B infoA infoB.A infoB infoC.A infoD.B info可修编-二、填空题(6 分)1、public interface InterfaceDemopublic static final int num=12;_1
29、_ void add();abstract class Demo implements InterfaceDemo_2 _ int getNumber();class Interfacetest extends Demo_3 _public void add()三、简答题(5+5=10 分)1.Overload 和 Override 有什么区别?Overloaded 的方法是否可以改变返回值类型?2.final 的特性?四、附加题(10 分)(1)4 分:定义一个 ManKind 类,包括:成员变量 int sex 和 int salary;方法 void manOrWorman():根据 sex 的值显示“man”(sex=1)或者“women”(sex=0);方法 void employeed():根据 salary 的值显示“no job”(salary=0)或者“job”(salary!=0)。可修编-(2)3 分:定义类 Kids1 继承 ManKind,并包括成员变量 int yearsOld;方法 printAge()打印 yearsOld 的值。(3)3 分:在 Kids1 类的 main 方法中实例化 Kids1 的对象 someKid,用该对象访问其父类的成员变量及方法。可修编-
限制150内