收藏 分销(赏)

面向对象程序设计(Java)-题库.doc

上传人:xrp****65 文档编号:5614749 上传时间:2024-11-14 格式:DOC 页数:33 大小:269.05KB
下载 相关 举报
面向对象程序设计(Java)-题库.doc_第1页
第1页 / 共33页
面向对象程序设计(Java)-题库.doc_第2页
第2页 / 共33页
面向对象程序设计(Java)-题库.doc_第3页
第3页 / 共33页
面向对象程序设计(Java)-题库.doc_第4页
第4页 / 共33页
面向对象程序设计(Java)-题库.doc_第5页
第5页 / 共33页
点击查看更多>>
资源描述

1、面向对象程序设计(java)题库抽题规范:(1) 此题库共75道题,抽8道作为期末考试题。其中,易8道,较易33道,较难18道,难16道.(2) 按题型,第一大题抽4道,每道10分;第二大题抽2道,每道10分;第三大题抽1道,每道20分;第四大题抽1道,每道20分。(3) 按难易程度:易(1道)、较易(4道)、较难(2道)、难(1道)。一、 解答题(共40道,抽4道,每道10分,共40分)1.面向对象有哪三大特征? 封装,继承,多态.2.什么是类? (易)类是定义同一类所有对象的变量和方法的蓝图或原型。3. 什么是对象?对象是类的实例;对象是通过new className产生的,用来调用类的方

2、法;类的构造方法 .。4. 类和对象的区别是什么?java中的类是模板,而对象是依据模版产生的实体5. 简述Java的封装性,如何在Java中实现封装封装性是指的把代码封装到大括号中,只能访问自己内部的数据,外边的东西访问不了。实现为加访问权限。6. 构造方法有哪些特点方法名与类名相同,没有返回值,可以有多个重载。7. 构造方法的作用是什么? (较易)初始化对象,就是你new一个类的时候可以很方便的给你的对象里的属性赋值。8. this在程序中所代表的意思(易)指当前对象9继承的作用是什么? (易)实现代码复用。10. Java支持多继承吗? (易)不能。11. 子类可以继承父类的哪些成员?

3、(较难)变量和构造方法。12. 简述构造子类对象时子类和父类构造方法执行顺序(较易)先执行父类再执行子类。13. 什么是方法的重载,如何选择被重载的方法?(较易)同一个类中如果同时存在两个以上的方法有同一个名字,在这种情况下,我们说方法被重载了,这个过程被称为重载。14什么是方法的重写,如何选择被重写的方法?(较难)当同名方法同时存在于子类和父类中时,对于子类来说就是将继承父亲的方法重载写过了,实现功能完全和父类无关。15. 简述重载和覆盖的区别(较易)重载是让同一方法名的方法可以处理和返回不同类型的数据而覆盖是在子类中改写父类的方法16. 什么是成员的隐藏?如何访问被隐藏了的父类成员?(较易

4、)在子类对父类的继承中,如果子类的成员变量和父类的成员变量同名,此时称为子类隐藏了父类的成员变量。Super语句。17. 简述this和super的区别(较难)this 即可以拿到自己的也可以拿到父类的, super 只能拿到父类的18. 简述面向对象的多态性(较易)一个接口,多个方法19.简述实例变量和类变量的区别(较易)1. 简述静态方法和实例方法的区别(较易)2. 简述按值传递和按址传递的区别(较难)3. 什么是抽象类?抽象类中一定有抽象方法吗?(较难)4. 什么是接口?接口中的成员有什么特点?(较易)5. 简述抽象类和接口的区别(较易)6. extends和implements的区别是

5、什么?(较易)7. final可以用在哪些地方,分别代表什么意思?(较易)8. static可以用在哪些地方,分别代表什么意思?(较易)9. 静态代码块的作用是什么?它被执行几次?(较易) 10. Java中包的作用是什么(易)11. 在Java中,import和package的区别?(易)12. public,protected,default,private的区别(较易)13. 内部类的作用是什么?内部类常用在哪里?(较难)14. 简述异常处理机制(较难)15. 简述throw和throws的区别(较易)16. 简述final和finally的区别(较易)17. 列出三个常见的异常并说明其

6、作用(较易)18. 简述String和StringBuffer的区别(较易)19. 集合Collection包含哪两大子接口?它们的区别是什么?(较易)20. 如何把一个字节流转换成字符流?(较易)21. 让一个类成为线程有哪两种方式?(较易)二、 单项编程(共25题,抽2题,每题10分,共20分)1. 设计一个矩形类,有长和宽两个属性,能够计算每一个矩形的面积和周长;再编写一个主类,在其主方法main中创建一个具体的矩形,求出该矩形的周长和面积。(较易)2. (1)设计一个圆类,有一个属性半径,能够计算每一个圆的面积和周长;再编写一个主类,在其主方法main中创建一个具体的圆形,求出该圆形的

7、周长和面积。(较易)3. 设计一个盒子类Box,它有长、宽、高三个私有成员属性,包含无参数和有参数的构造方法,分别实现设置和获取属性的setter和getter方法,以及求盒子体积的公有方法。其中,构造方法用于对成员变量初始化,无参数的构造方法将成员变量初始化为0值。再编写一个主类BoxTest,在其主方法main()中创建若干个Box对象,输出其长、宽、高及其体积的值。(较易)4. 设计一个人类,有姓名、年龄、性别、身高、体重属性,以及吃饭、穿衣服、跑步行为;再编写一个主类,在其主方法main中创建两个人类对象,并分别为各个对象的属性赋初值,然后打印出各个对象的所有基本信息。(较易)5. 编

8、写学生类和成绩类。成绩有科目和分数信息。学生有姓名和成绩信息,学生类的getResult()方法显示输出成绩信息,setData()方法实现初始化学生信息。(较难)6. (1)定义一个动物类Animal,有动物类型属性type和动物发声的方法sound();(2)定义基于动物类的狗类Dog和猫类Cat,这两个类都要求覆盖父类的发声方法;(3)定义AnimalDemo类,声明一个Animal对象,分别创建一个Dog、Cat类的对象,然后通过Animal对象来访问Dog、Cat类对象的sound()方法。(难)7. (1)设计一个表示二维平面上圆的类Circle,有表示圆半径的protected类

9、型的成员变量radius、获取和设置radius值的public方法、计算圆面积的public方法。(2)设计一个表示圆柱体的类Cylinder,它继承自类Circle,还包含有表示圆柱体高的protected类型的成员变量height、获取和设置height值的public方法、计算圆柱体体积的public方法。(3)建立若干个Cylinder对象,输出其半径、高及其体积的值。要求:A、每个类包含无参数和有参数的构造方法。构造方法用于对成员变量初始化,无参数的构造方法将成员变量初始化为0值。B、子类的构造方法调用父类的构造方法,对父类中的成员变量初始化。(较难)8. 请使用继承关系实现下列描

10、述: (较难)自行车和豪车属于车类型车(car):车牌号(cid)、车型(dtype)、价值(cvalue)自行车(bicycle):车牌号(cid)、车型(dtype)、价值(cvalue)、链条(chain)豪车(limo):车牌号(cid)、车型(dtype)、价值(cvalue)、导航(guide)9. 使用一个类里面包含其他类的对象的方法实现下列描述:(较难)有1个组长,手下有2个助手,每个助手有2部车。组长(leader):姓名(lname)、年龄(lage)助手(asist):编号(aid)、年龄(aage)、姓名(aname)、爱好(ahobby)车(car):车牌号(cid)

11、、车型(dtype)、价值(cvalue)10. 使用一个类里面包含其他类的对象的方法实现下列描述:(较难)有1个人,人有2个宠物且有2部车。人(people):姓名(pname)、年龄(page)宠物(pet):编号(petid)、年龄(petage)、姓名(petname)车(car):车牌号(cid)、车型(dtype)、价值(cvalue)11. 使用一个类里面包含其他类的对象的方法实现下列描述:(较难)有1个房间,里面有1个冰箱,冰箱里面有1个饮料房间有型号和大小2个属性冰箱有型号、颜色和耗电量3个属性饮料有类型和价值2个属性12. 定义抽象的Intrument(乐器)类,声明一个抽

12、象的play();定义一个派生类Stringed(弦类乐器),实现父类的抽象的play()。在main()中实例化Stringed类调用play()。(难)13. 定义含有抽象方法print()的基类,在构造方法中调用print();print()方法在派生类被重写,该方法打印在派生类中定义的成员变量i,在定义i时给定非零的初始值;在main()中,创建派生类的对象,然后调用print()。(难)14. 定义一个接口Myinterface,有两个抽象方法max()和min();在Operation类中实现该接口,同时实现抽象方法max()和min(),它们分别用于求任意三个整数中的最大值和最小

13、值。(难)15. 定义一个Compute接口,有抽象方法add()、substract()、multiply()和divide();定义一个实现Compute接口的类Computer,然后创建Computer对象完成加、减、乘和除四个方法的调用。(难)16. 设计一个汽车类Auto,有速度属性speed,另外,有启动state,加速speedup和停止stop方法,然后,设计一个子类Bus表示公共汽车,Bus增加一个属性passenger表示乘客数,另外添加两个方法gotOn和gotOff表示乘客上下车。(较难)17. 设计一个时间类MyTime,包含一个构造方法,3个私有成员变量hour、m

14、inute、second以及它们相应的setter和getter方法,再加上一个转换成“XX时:XX分: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)方法实现点的位置移

15、动。编写一个程序,创建两个Point对象p1,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集合来实现对

16、Book对象数据的存储,并输出相应图书信息(难)24. 设计一个程序从Thread类派生,用它建立两个线程a和b,a线程每隔0.1秒输出一个字符a,共输出10个a,b线程每隔0.2秒输出一个字符b,也输出10个b。(难)25. 请计算1100之间的奇数之和,并实现在屏幕上每2秒钟输出一步计算结果如:(难)1+3=44+5=9三、 类的综合应用(共5道,抽1道,每道20分) (一)武器问题(较难)1定义一个Weapon (武器)抽象类 要求:1)定义两个属性 (1) 武器的名称 name (2)武器的颜色 color 2)定义一个抽象方法showMe() 2定义Pistol (手枪) Sword

17、 (军刀) Axe (斧头)三个具体的武器类继承Weapon 1)分别重写showMe方法,该方法功能是在控制台显示该武器的信息 注:武器的信息就包括它的名称和颜色3定义一个入口类Access 在main方法里面去测试功能 要求: 1) 定义一个List集合 2) 建立上面的三种武器对象各3个,给他们取名字,并且指定颜色 3) 把这些对象放在定义好的List里面 4) 循环这个List取出对象去调用武器类的showMe方法(二)宠物问题(较难)1定义一个Animal(动物)抽象类 要求:1)定义两个属性 (1) 动物的名称 name (String类型) (2)动物的毛色 color (Str

18、ing类型) 2)定义一个抽象方法showMe() 2分别定义Cat Dog Snake三个宠物类继承Animal 1)分别重写showMe方法,该方法功能是在控制台显示该宠物的信息 注:宠物的信息就包括它的名称和颜色3定义一个入口类Access 在main方法里面去测试功能 要求: 1) 定义一个List集合 2) 建立上面的三种宠物对象各3个,给他们取名字,并且指定毛色 3) 把这些对象放在定义好的List里面 4) 循环这个List取出对象去调用动物类的showMe方法(三)家具问题(较难)1定义一个Furniture (家具)抽象类 要求:1)定义两个属性 (1) 家具的名称 name

19、 (String类型) (2)家具的颜色 color (String类型) 2)定义一个抽象方法showMe() 2定义Sofa(沙发) Desk(桌子) Chair (椅子)三个具体的家具类继承Furniture 1)分别重写showMe方法,该方法功能是在控制台显示该家具的信息 注:家具的信息就包括它的名称和颜色3定义一个入口类Access 在main方法里面去测试功能 要求: 1) 定义一个List集合 2) 建立上面的三种家具对象各3个,给他们取名字,并且指定颜色 3) 把这些对象放在定义好的List里面 4) 循环这个List取出对象去调用家具类的showMe方法(四)、箱子问题(难

20、)1定义一个Box(箱子)类 要求:1)定义一个属性 (1) 箱子容器(用List集合表示) box 提示:用来存放物品2定义Apple(苹果)类 要求: 1) 定义两个属性(1) 苹果的体积 bulk (用float数据类型) (2) 苹果的颜色 color(用String数据类型) 2) 定义一个方法public void showMe() 该方法功能是在控制台展示苹果的属性3在箱子类里面添加几个方法 要求: 1) 建立方法可以往箱子里面放一个苹果 public void putApple(Apple apple) 提示:直接放在List集合里面2) 建立方法可以在箱子里面取出一个苹果 p

21、ublic Apple getApple() 提示:取的时候注意判断箱子里面是否还有苹果存在 3) 建立方法查看箱子里面还有多少个苹果 public int getSize()4. 建立一个Access类 在main方法里面创建一个箱子对象和5个苹果对象测试往 箱子里面放苹果取苹果的方法 (五)、子弹发射问题(难)1定义一个Pistol (枪)类 要求:1)定义一个属性,弹夹 (用int表示) charger 提示:用来表示当前子弹数量 2) 定义一个方法public void shoot() 该方法的功能是在控制台打印发射两个字,但是需要判断当前弹夹里 面还有子弹没 如果没有就打印没有子弹的

22、提示, 注意:成功发射了之后弹夹会少掉一个子弹 3) 定义一个方法用来给弹夹上子弹 public void setBullet () 注意:调用此方法一次给弹夹上20发子弹 4) 重载上子弹方法 提供可以指定上多少数量子弹的功能 public void setBullet (int i) 注意:最多能指定30发 public int getSize()4. 建立一个Access类 在main方法里面创建一个手枪对象测试一下上面4个方法 正确否 给手枪上子弹 发射子弹四、 JDBC操作数据库(共5道,抽1道,每道20分):此题作为填空题,每道题10个空,每个空2分.黄色部分为填空。(一)用数据库

23、存放城市信息(难)1创建名为test的数据库2在数据库test中创建城市(City)表字段描述长度类型备注City _id城市编号32VarcharPk(主键)City _name城市名称30VarcharCity _country所属国家30VarcharCity _note城市简介200Varchar3建立一个类来封装城市信息(City),放在com.zdsoft.po包下 提供四个私有属性: 城市编号 城市名称 所属国家 城市简介 4建立CityDao类,利用DBUtil类 建立方法对城市信息进行查询与删除操作 该类放在com.zdsoft.dao包下1) 建立方法通过城市名称查询单个城

24、市public City findCity(String city_name)注:查询出来的城市信息封装在Ctiy对象里 2) 能够通过Id删除某条城市信息public void deleteCity(String city_id) 5建立Access类在main函数中测试对城市表的查,删方法 该类放在com.zdsoft.access包下.package com;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;impo

25、rt java.sql.Statement;public class DBUtil private Connection conn = null; / 数据库连接对象private Statement st = null;/ 执行sql语句的对象private ResultSet rs = null;/ 存放查询结果的对象/* * 获得ResultSet * return ResultSet */public ResultSet getRs() return rs;/* * 获得数据库连接 */private void getConnection() final String DRIVERNA

26、ME = com.mysql.jdbc.Driver;final String URL = jdbc:mysql:/localhost:3306/test?characterEncoding=utf-8;final String LOGIN = root;/ 数据库管理员用户名final String PASSWORD = ;/ 数据库密码try Class.forName(DRIVERNAME); / 加载驱动程序conn = DriverManager.getConnection(URL, LOGIN, PASSWORD); catch (Exception e) System.out.p

27、rintln(执行getConnection()方法出错:);e.printStackTrace();public DBUtil()getConnection();try st = conn.createStatement(); catch (SQLException e) e.printStackTrace();/* * 数据库查询 * param sql 传入的SQL语句 */public void executeQuery(String sql)tryrs=st.executeQuery(sql);/执行SQL语句获得结果集catch(Exception e)System.out.pri

28、ntln(执行executeQuery(String sql)方法出错:+sql);/我们要养成习惯如果发生了错误首先看打印出来的sql语句有没有问题e.printStackTrace();/打印出错误原因/* * 数据库增加/删除/修改 * param sql 传入的SQL语句 * return 0执行成功 */public int executeUpdate(String sql)int ret=-1;tryret=st.executeUpdate(sql);/执行SQL语句对数据表进行操作,变量ret存放对表修改了多少行catch(Exception e)System.out.print

29、ln(执行executeUpdate(sql)方法出错:+sql);e.printStackTrace();/打印出错误原因finallyclose();return ret;/* * 数据库关闭 */public void close()try if (rs!=null)rs.close();/关闭结果集if (st!=null)st.close();/关闭Statement对象if (conn!=null)conn.close();/关闭连接catch(Exception e)System.out.println(执行close()方法出错:);e.printStackTrace();pa

30、ckage com.zdsoft.po;public class City private String cityId;private String cityName;private String cityCountry;private String cityNote;public String getCityId() return cityId;public void setCityId(String cityId) this.cityId = cityId;public String getCityName() return cityName;public void setCityName

31、(String cityName) this.cityName = cityName;public String getCityCountry() return cityCountry;public void setCityCountry(String cityCountry) this.cityCountry = cityCountry;public String getCityNote() return cityNote;public void setCityNote(String cityNote) this.cityNote = cityNote;package com.zdsoft.

32、dao;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;import com.DBUtil;import com.zdsoft.po.City;public class CityDao DBUtil db = null;public CityDao() db = new DBUtil();public City findcity(String city_name) String sql = select * from city wher

33、e city_name=+ city_name + ;db.executeQuery(sql);ResultSet res = db.getRs();City c = new City();try while (res.next() c.setCityId(res.getString(city_id);c.setCityCountry(res.getString(class_name);c.setCityName(res.getString(city_name);c.setCityNote(res.getString(city_sex); catch (SQLException e) e.pr

34、intStackTrace();return c;public void deleteCity(String city_id) String sql = delete from city where city_id= + city_id + ;if (db.executeUpdate(sql) 0) System.out.println(数据删除成功); else System.out.println(数据删除失败);package com.zdsoft.access;import java.util.List;import com.zdsoft.dao.CityDao;import com.

35、zdsoft.po.City;public class Access public static void main(String args) CityDao dao = new CityDao();City s = dao.findcity(重庆);System.out.print(s.getCityId();System.out.print(s.getCityName();System.out.print(s.getCityCountry();System.out.println(s.getCityNote();dao.deleteCity(023);(二)、用数据库存放用户信息(难)1创

36、建名为test的数据库2在数据库test中创建用户 (User)表字段描述长度类型备注User _id用户编号32VarcharPk(主键)User _name用户帐号30VarcharUser _pass用户密码30VarcharUser _date创建时间Date3建立一个类来封装用户信息(User),放在com.zdsoft.po包下 提供四个私有属性: 用户编号 用户帐号 用户密码 创建时间 4建立UserDao类,利用DBUtil类 建立方法对用户信息进行查询与删除操作 该类放在com.zdsoft.dao包下1) 建立方法通过用户编号查询某个用户信息public User find

37、User(String User_id)注:查询出来的用户信息封装在User 对象里 2) 能够通过Id删除某条用户信息 public void deleteUser(String User_id) 5建立Access类在main函数中测试对用户表的查,删方法 该类放在com.zdsoft.access包下.package com;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.State

38、ment;public class DBUtil private Connection conn = null; / 数据库连接对象private Statement st = null;/ 执行sql语句的对象private ResultSet rs = null;/ 存放查询结果的对象/* * 获得ResultSet * return ResultSet */public ResultSet getRs() return rs;/* * 获得数据库连接 */private void getConnection() final String DRIVERNAME = com.mysql.jd

39、bc.Driver;final String URL = jdbc:mysql:/localhost:3306/test?characterEncoding=utf-8;final String LOGIN = root;/ 数据库管理员用户名final String PASSWORD = ;/ 数据库密码try Class.forName(DRIVERNAME); / 加载驱动程序conn = DriverManager.getConnection(URL, LOGIN, PASSWORD); catch (Exception e) System.out.println(执行getConne

40、ction()方法出错:);e.printStackTrace();public DBUtil()getConnection();try st = conn.createStatement(); catch (SQLException e) e.printStackTrace();/* * 数据库查询 * param sql 传入的SQL语句 */public void executeQuery(String sql)tryrs=st.executeQuery(sql);/执行SQL语句获得结果集catch(Exception e)System.out.println(执行executeQue

41、ry(String sql)方法出错:+sql);e.printStackTrace();/打印出错误原因/* * 数据库增加/删除/修改 * param sql 传入的SQL语句 * return 0执行成功 */public int executeUpdate(String sql)int ret=-1;tryret=st.executeUpdate(sql);/执行SQL语句对数据表进行操作,变量ret存放对表修改了多少行catch(Exception e)System.out.println(执行executeUpdate(sql)方法出错:+sql);e.printStackTrac

42、e();/打印出错误原因finallyclose();return ret;/* * 数据库关闭 */public void close()try if (rs!=null)rs.close();/关闭结果集if (st!=null)st.close();/关闭Statement对象if (conn!=null)conn.close();/关闭连接catch(Exception e)System.out.println(执行close()方法出错:);e.printStackTrace();package com.zdsoft.po;public class User private String userId;private String userName;private String userPass;

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 考试专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服