《面向对象程序设计(Java)-题库》由会员分享,可在线阅读,更多相关《面向对象程序设计(Java)-题库(33页珍藏版)》请在金锄头文库上搜索。
1、面向对象程序设计 (java)题库抽题规范:(1) 此题库共 75 道题,抽 8 道作为期末考试题。其中,易 8 道,较易 33 道,较难18 道,难 16 道.(2) 按题型,第一大题抽 4 道,每道 10 分;第二大题抽 2 道,每道 10 分;第三大题抽1 道,每道 20 分;第四大题抽 1 道,每道 20 分。(3) 按难易程度:易(1 道) 、较易(4 道) 、较难(2 道)、难(1 道)。1、解答题(共 40 道,抽 4 道,每道 10 分,共 40 分)1.面向对象有哪三大特征? 封装,继承,多态.2.什么是类? (易)类是定义同一类所有对象的变量和方法的蓝图或原型。3.什么是对。
2、象?对象是类的实例;对象是通过 new className 产生的,用来调用类的方法;类的构造方法 .。4.类和对象的区别是什么?java 中的类是模板,而对象是依据模版产生的实体5.简述 Java 的封装性,如何在 Java 中实现封装封装性是指的把代码封装到大括号中,只能访问自己内部的数据, 外边的东西访问不了。实现为加访问权限。6.构造方法有哪些特点方法名与类名相同,没有返回值,可以有多个重载。7.构造方法的作用是什么? (较易)初始化对象,就是你 new 一个类的时候可以很方便的给你的对象里的属性赋值。8.this 在程序中所代表的意思(易)指当前对象9 继承的作用是什么? (易)实现。
3、代码复用。10.Java 支持多继承吗? (易)不能。11.子类可以继承父类的哪些成员? (较难)变量和构造方法。12.简述构造子类对象时子类和父类构造方法执行顺序(较易)先执行父类再执行子类。13.什么是方法的重载,如何选择被重载的方法?(较易)同一个类中如果同时存在两个以上的方法有同一个名字,在这种情况下,我们说方法被重载了,这个过程被称为重载。14 什么是方法的重写,如何选择被重写的方法?(较难)当同名方法同时存在于子类和父类中时,对于子类来说就是将继承父亲的方法重载写过了,实现功能完全和父类无关。15.简述重载和覆盖的区别(较易)重载是让同一方法名的方法可以处理和返回不同类型的数据而覆。
4、盖是在子类中改写父类的方法16.什么是成员的隐藏?如何访问被隐藏了的父类成员?(较易)在子类对父类的继承中,如果子类的成员变量和父类的成员变量同名,此时称为子类隐藏了父类的成员变量。Super 语句。17.简述 this 和 super 的区别(较难)this 即可以拿到自己的也可以拿到父类的, super 只能拿到父类的18.简述面向对象的多态性(较易)一个接口,多个方法19.简述实例变量和类变量的区别(较易)1. 简述静态方法和实例方法的区别(较易)2. 简述按值传递和按址传递的区别(较难)3. 什么是抽象类?抽象类中一定有抽象方法吗?(较难)4. 什么是接口?接口中的成员有什么特点?(较。
5、易)5. 简述抽象类和接口的区别(较易)6. extends 和 implements 的区别是什么?(较易)7. final 可以用在哪些地方,分别代表什么意思?(较易)8. static 可以用在哪些地方,分别代表什么意思?(较易)9. 静态代码块的作用是什么?它被执行几次?(较易) 10. Java 中包的作用是什么(易)11. 在 Java 中,import 和 package 的区别?(易)12. public,protected,default,private 的区别(较易)13. 内部类的作用是什么?内部类常用在哪里?(较难)14. 简述异常处理机制(较难)15. 简述 thro。
6、w 和 throws 的区别(较易)16. 简述 final 和 finally 的区别(较易)17. 列出三个常见的异常并说明其作用(较易)18. 简述 String 和 StringBuffer 的区别(较易)19. 集合 Collection 包含哪两大子接口?它们的区别是什么? (较易)20. 如何把一个字节流转换成字符流?(较易)21. 让一个类成为线程有哪两种方式?(较易)2、单项编程(共 25 题,抽 2 题,每题 10 分,共 20 分)1. 设计一个矩形类,有长和宽两个属性,能够计算每一个矩形的面积和周长;再编写一个主类,在其主方法 main 中创建一个具体的矩形,求出该矩形。
7、的周长和面积。(较易)2. (1)设计一个圆类,有一个属性半径,能够计算每一个圆的面积和周长;再编写一个主类,在其主方法 main 中创建一个具体的圆形,求出该圆形的周长和面积。(较易)3. 设计一个盒子类 Box,它有长、宽、高三个私有成员属性,包含无参数和有参数的构造方法,分别实现设置和获取属性的 setter 和 getter 方法,以及求盒子体积的公有方法。其中,构造方法用于对成员变量初始化,无参数的构造方法将成员变量初始化为 0 值。再编写一个主类 BoxTest,在其主方法 main()中创建若干个 Box对象,输出其长、宽、高及其体积的值。 (较易)4. 设计一个人类,有姓名、年。
8、龄、性别、身高、体重属性,以及吃饭、穿衣服、跑步行为;再编写一个主类,在其主方法 main 中创建两个人类对象,并分别为各个对象的属性赋初值,然后打印出各个对象的所有基本信息。 (较易)5. 编写学生类和成绩类。成绩有科目和分数信息。学生有姓名和成绩信息,学生类的getResult()方法显示输出成绩信息,setData()方法实现初始化学生信息。 (较难)6. (1)定义一个动物类 Animal,有动物类型属性 type 和动物发声的方法 sound();(2)定义基于动物类的狗类 Dog 和猫类 Cat,这两个类都要求覆盖父类的发声方法;(3)定义 AnimalDemo 类,声明一个 An。
9、imal 对象,分别创建一个 Dog、Cat 类的对象,然后通过 Animal 对象来访问 Dog、Cat 类对象的 sound()方法。 (难)7. (1)设计一个表示二维平面上圆的类 Circle,有表示圆半径的 protected 类型的成员变量 radius、获取和设置 radius 值的 public 方法、计算圆面积的 public 方法。(2)设计一个表示圆柱体的类 Cylinder,它继承自类 Circle,还包含有表示圆柱体高的 protected 类型的成员变量 height、获取和设置 height 值的 public 方法、计算圆柱体体积的 public 方法。(3)建。
10、立若干个 Cylinder 对象,输出其半径、高及其体积的值。要求:A、每个类包含无参数和有参数的构造方法。构造方法用于对成员变量初始化,无 参数的构造方法将成员变量初始化为 0 值。B、子类的构造方法调用父类的构造方法,对父类中的成员变量初始化。 (较难)8. 请使用继承关系实现下列描述: (较难)自行车和豪车属于车类型车(car):车牌号(cid) 、车型(dtype) 、价值(cvalue)自行车(bicycle):车牌号(cid) 、车型(dtype) 、价值(cvalue) 、链条(chain)豪车(limo):车牌号(cid) 、车型(dtype) 、价值(cvalue) 、导航(。
11、guide)9. 使用一个类里面包含其他类的对象的方法实现下列描述:(较难)有 1 个组长,手下有 2 个助手,每个助手有 2 部车。组长(leader):姓名(lname) 、年龄(lage)助手(asist):编号(aid) 、年龄(aage) 、姓名(aname) 、爱好(ahobby)车(car):车牌号(cid) 、车型(dtype) 、价值(cvalue)10. 使用一个类里面包含其他类的对象的方法实现下列描述:(较难)有 1 个人,人有 2 个宠物且有 2 部车。人(people):姓名(pname) 、年龄(page)宠物(pet):编号(petid) 、年龄(petage) 。
12、、姓名(petname)车(car):车牌号(cid) 、车型(dtype) 、价值(cvalue)11. 使用一个类里面包含其他类的对象的方法实现下列描述:(较难)有 1 个房间,里面有 1 个冰箱,冰箱里面有 1 个饮料房间有型号和大小 2 个属性冰箱有型号、颜色和耗电量 3 个属性饮料有类型和价值 2 个属性12. 定义抽象的 Intrument(乐器 )类,声明一个抽象的 play();定义一个派生类Stringed(弦类乐器) ,实现父类的抽象的 play()。在 main()中实例化 Stringed 类调用play()。 (难)13. 定义含有抽象方法 print()的基类,在构。
13、造方法中调用 print();print() 方法在派生类被重写,该方法打印在派生类中定义的成员变量 i,在定义 i 时给定非零的初始值;在 main()中,创建派生类的对象,然后调用 print()。 (难)14. 定义一个接口 Myinterface,有两个抽象方法 max()和 min();在 Operation 类中实现该接口,同时实现抽象方法 max()和 min(),它们分别用于求任意三个整数中的最大值和最小值。 (难)15. 定义一个 Compute 接口,有抽象方法 add()、substract()、multiply()和 divide();定义一个实现 Compute 接口。
14、的类 Computer,然后创建 Computer 对象完成加、减、乘和除四个方法的调用。 (难)16. 设计一个汽车类 Auto,有速度属性 speed,另外,有启动 state,加速 speedup 和停止 stop 方法,然后,设计一个子类 Bus 表示公共汽车, Bus 增加一个属性passenger 表示乘客数,另外添加两个方法 gotOn 和 gotOff 表示乘客上下车。 (较难)17. 设计一个时间类 MyTime,包含一个构造方法,3 个私有成员变量hour、minute、second 以及它们相应的 setter 和 getter 方法,再加上一个转换成“XX 时:XX 分。
15、:XX 秒”格式字符串的方法 toString。 (较易)18. 设计一个日期类 MyDate,包含一个构造方法,3 个私有成员变量year、month、day 以及它们相应的 setter 和 getter 方法,再加上一个转换成“XXXX 年 XX 月 XX 日” 格式字符串的方法 toString。 (较易)19. 实做一个点类 Point,包含两个成员变量 x,y 分别表示 x 和 y 坐标,两个构建器Point()和 Point(int x0,int y0),以及一个 movePoint(int dx,int dy)方法实现点的位置移动。编写一个程序,创建两个 Point 对象 p1。
16、,p2,分别调用 movePoint 方法后,打印 p1 和 P2 的坐标。 (难)20. 使用 ArrayList 添加 5 个数(如:25、66、88、33、 77) ,求出这 5 个数的平均数并显示在控制台。 (较易)21. 使用 Set 添加 5 个元素(如: a,b,c,d,e) ,并将全部元素输出到控制台。 (较易)22. 使用 Map 添加班上 5 个学生的学号和姓名,在控制台输出这 5 个学生的学号和姓名信息。 (较易)23. 创建一个图书类 Book,其属性有书号 id、书名 name、作者 author 和出版社press;再声明三个 Book 对象并赋值;然后依次用 Set、List、Map 集合来实现对Book 对象数据的存储,并输出相应图书信息 (难)24. 设计一个程序从 Thread 类派生,用它建立两个线程 a 和 b,a 线程每隔 0.1 秒输出一个字符a ,共输出 10 个a ,b 线程每隔 0.2 秒输出一个字符b ,也输出 10 个b 。 (难)25. 请计算 1100 之间的奇数之和,。