




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
CoreJavaOOP考试题考试时间:90分钟 考试总分:100分一、 选择题(不定项选择)(2 * 20 = 40)1. 下面哪些行为没有体现了Java的多态性(B)A 方法的覆盖 B 抽象方法C 方法的重载D 类型转换2. 下列说法正确的是(D)A. 所有类都必须定义构造方法(构造器)B. 构造方法必须初始化类的所有数据成员C. 子类定义了构造器后,不再调用父类的构造器D. 构造方法可以访问类的非静态成员3. 下面代码运行的结果是(C)class FString name = “name_F”;private int age;public F()class C extends FString name = “name_C”;public C()public static void main(String args)F f = new C();C c = new C();System.out.println( +” ”+);A.name_C name_CB.name_C name_FC.name_F name_CD.name_F name_F4. public class Outerprivate int index = 10;class Innerprivate int index = 20;void print()System.out.println(_);System.out.println(_);void print()System.out.println(_);public static void main(String args)Outer o = new Outer();Outer.Inner i = o.new Inner();o.print();i.print();程序运行的结果是 10 20 10 ,则空白处填写的代码是(D)A. index index index B. index Outer.index indexC. index index Outer.indexD. index Outer.this.index index5. class Basestatic void test()System.out.println(“Base.test()”);public class Child extends Basestatic void test()System.out.println(“Child.test()”);public static void main(String args)Base base = new Child();Child child = new Child();base.test();child.test();程序运行的结果是(C)A. Child.test() Child.test() B. Child.test() Base.test()C. Base.test() Child.test() D. Base.test() Base.test()6. 类中用多重catch 处理异常时,(B)异常类应最后列出。A NumberFormatExceptionB ExceptionC ArrayIndexOutOfBoundsExceptionD ArithmeticException7. 下列哪些叙述是正确的(CD)A 在一个类中,方法不能与类名相同B astract 可以修饰属性、方法和类C 实例方法可直接调用本类的static方法和非static方法D static方法不能调用非static方法8. 以下说法正确的是(AC)A 子类不能继承父类的构造方法B 子类的构造方法可以访问父类的构造方法C 子类不可直接访问父类的私有属性D 子类可以重写父类的所有方法9. 关于接口,以下说法错误的是(ACD)A 接口中可以定义非抽象方法B 接口可以继承多个接口C 接口中可以定义没有初始化的变量D 接口可以实现接口10. class Baseprivate int base = 10;public 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();程序运行的结果是(D)A. 19B. 11 19C. 11 20D. 10 1911. public class InnerDemoprivate int outer = 20;public static void main(String args)class Innerprivate int inner = 30;public Inner()test(inner);void test(int inner)inner += 5;System.out.println(inner);int outer = 40;Inner inner = new Inner();inner.test(outer);程序运行的结果是(C)A 45B 30 45C 35 45D 35 4012. 关于异常,下列描述正确的是(ABC)A 异常的基类为Exception,所有异常都必须直接或者间接继承它B 异常可以用try catch(Exception e) 来捕获并进行处理C 如果某异常继承RuntimeException,则该异常可以不被声明D 异常可以随便处理,而不是抛给外层的程序进行处理13. 在Java中,关于final关键字的说法正确的是(AC)A. final修饰的变量,一旦赋值就不能被更改B. final修饰的类只能被一个子类继承C. final修饰的方法,不能在子类中被覆盖D. final修饰的方法,不能被子类继承14. 下列不属于接口的是(BC)A ListB ArrayListC HashSetD Map15. 1) public interface Test2) static public final int num = 10;3) public static void add();4) public String test();5) public long delete();6)关于上面的代码,以下说法错误的是(ABD)A 第 2)行代码有编译错误B 第 3)行代码没有编译错误C 第 4)行代码有编译错误D 第 5)行代码有编译错误16. 下列哪一项不是面向对象的典型特征(D)A 封装 B.继承C. 多态 D.抽象17. 关于类、抽象类和接口,以下说法正确的是(ACD)A 接口可以继承多个接口B 抽象类不能实现接口C 一个类只能继承一个类,但可以实现多个接口D 抽象类实现接口,可以不实现接口的方法18. 下面关于变量的说法正确的是(BC)A 实例变量可以通过类名直接调用B 类变量可以通过类名直接调用C Java中的参数传递都是值传递D 在不同的作用域不能定义相同的变量19. 下列代码有编译错误的是第(D)行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 Object4; 7) Object obj1 = new object9;8) 9) A. 5)B. 5) 7)C. 4) 7)D. 4)20. 下列代码的运行结果是(A)public class Testprivate int num;private static Test test;public Test(int num)this.num = + 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. 17二、 填空题(2 * 6 = 12分)1、public interface InterfaceDemopublic static final int _abstract_ void add();abstract class Demo implements InterfaceDemo_abstract_ int getNumber();/抽象方法class Interfacetest extends Demopublic int getNumber()return 0;public void add()2、public class Userprivate String name;private int age;public String getName()Return ;public void setName(String name) = name;public int getAge()Return this.age;public void setAge(int age) this.age = age;public boolean equals(Object o)if(_this = = obj_)return true;if(_obj =null_)return false;if(_obj instance of_)_User user = (User) obj_;return (.equals(other.getName()& this.age = other.getAge(); return fasle;public int hashCode()return name.hashCode() 20 + age * 1000;三、 简答题(8 + 8 + 8 = 24分)1. 抽象类和接口有什么区别?声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。接口(interface)是抽象类的变体。新型多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,所有成员变量都是public static final的。一个类可以实现多个接口,当类实现接口时,必须实现接口的所有方法。抽象类在Java语言中表示的是一种单继承的关系,对于interface 来说则不然,并不要求interface的实现者和interface定义在概念本质上是一致的,仅仅是实现了interface定义的契约而已。;抽象类中可以定义自己的成员变量,也可以包含非抽象的方法,而在接口中只能有静态的常量,所有方法必须是抽象的;实现抽象类时可以只实现其中的部分方法,而要是实现一个接口的话就必须实现这个接口中的所有抽象方法。2. Overload和Override的区别,Overloaded的方法是否可以改变返回值类型方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。3. final, finally, finalize的区别?final修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。finally再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。finalize方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。四、 程序题(9 + 15 = 24分)1、 建立一个汽车类(Car),包括轮胎个数,汽车颜色,车身重量等属性。并通过不同的构造方法创建事例。至少要求:汽车能够加速,减速,停车。 要求:命名规范,代码体现层次,有友好的操作提示。public class Car private int wheels; / 轮胎个数 private String color; / 颜色 private double weight = 50; / 重量 默认50KG private int speed = 100; / 速度 默认100KM/H / 无参构造函数 public Car() wheels = 4; color = 黑; / 车轮+颜色的车 public Car(int wheels, String color) this.wheels = wheels; this.color = color; / 车轮+颜色+重量的车 public Car(int wheels, String color, double weight) this.wheels = wheels; this.color = color; this.weight = weight; / 车轮+颜色+重量+速度的车 public Car(int wheels, String color, double weight, int speed) this.wheels = wheels; this.color = color; this.weight = weight; this.speed = speed; / 加速 private void speedUp() System.out.println(汽车开始加速); / 减速 private void speedDown() System.out.println(汽车减速); / 停车 private void stop() System.out.println(停车); Override / 重写toString()方法.展示车子的详细信息 public String toString() return 这是一辆有 + wheels + 个轮胎, + weight + 千克重 + ,时速为 + speed + KM/H的 + color + 色汽车。; public static void main(String args) / 调用默认构造函数 Car car = new Car(); / 输出是一辆什么车 System.out.println(car); / 分别调用加速、减速、停车方法 car.speedUp(); car.speedDown(); car.stop(); 2、 定义一个抽象的Role类,有姓名,年龄,性别等成员变量u 要求尽可能隐藏所有变量(能够私有就私有,能够保护就不要公有),再通过GetXXX()和SetXXX()方法对各变量进行读写。具有一个抽象的play()方法,该方法不返回任何值,同时至少定义两个构造方法。Role类中要体现出this的几种用法。u 从Role类派生出一个Employee类,该类具有Role类的所有成员(构造方法除外),并扩展salary成员变量,同时增加一个静态成员变量“职工编号(ID)”。同样要有至少两个构造方法,要体现出this和super的几种用法,还要求覆盖play()方法,并提供一个final sing()方法。u Manager类继承Employee类,有一个final成员变量vehicleu 在main()方法中制造Manager和Employee对象,并测试这些对象的方法 package dierti; public abstract class Role / 定义一个抽象的Role类,有姓名,年龄,性别等成员变量 private String name; private int age; private String sex; / 再通过GetXXX()和SetXXX()方法对各变量进行读写。 public String getName() return name; public void setName(String name) = name; public int getAge() return age; public void setAge(int age) this.age = age; public String getSex() return sex; public void setSex(String sex) this.sex = sex; / 具有一个抽象的play()方法,该方法不返回任何值 public abstract void play(); / 定义两个构造方法。Role类中要体现出this的几种用法。 public Role() public Role(String name, int age) = name; this.age = age; System.out.println(姓名:++,+年龄:+this.age); public Role(String name, int age, String sex) = name; this.age = age; this.sex = sex; System.out.println(姓名:++,+年龄:+this.age+,+性别:+this.sex); package dierti;public class Employee extends Role implements salary /* * 2. 从Role类派生出一个Employee类,该类具有Role类的所有成员(构造方法除外), * 并扩展salary成员变量,同时增加一个静态成员变量“职工编号(I
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 加法减法考试题目及答案
- 2025年事业单位工勤技能考试试题预测试卷【预热题】附答案详解
- 2025年辽宁职业学院单招考试文化素质物理试题预测试卷及答案详解一套
- 冬季加绒打底衫穿着指南
- 一、档案袋封皮填写说明及范例
- 景观园林设计与施工一体化项目合同样本
- 类第号上海证券交易所投资者保护基金管理合同
- 离婚财产分割与婚前协议实施及权益保障合同
- 夫妻一方出轨并转移财产导致离婚诉讼起诉合同
- 离婚时房产、车辆等资产分割协议参考样例
- 2024年内蒙古人力资源和社会保障厅事业单位笔试真题
- 升降机风险辨识及防范措施
- 中医治未病健康宣教
- 食堂员工服务培训
- 提升心理抗压能力的技巧
- 中医医术确有专长人员(多年实践人员)医师资格考核申请表
- 低空飞行器设计
- 《穴位埋线疗法》课件
- 【大型集装箱船舶港口断缆事故预防应急处理及案例探析7500字(论文)】
- 脑梗塞并出血护理查房
- 三对三篮球赛记录表
评论
0/150
提交评论