1、面向对象程序设计Java题库面向对象程序设计(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的区别是什么?较易7.final可以用在哪些地方,分别代表什么意思?较易8.static可以用在哪些地方
5、,分别代表什么意思?较易9.静态代码块的作用是什么?它被执行几次?较易 10.Java中包的作用是什么易11.在Java中,import和package的区别?易12.public,protected,default,private的区别较易13.内部类的作用是什么?内部类常用在哪里?较难14.简述异常处理机制较难15.简述throw和throws的区别较易16.简述final和finally的区别较易17.列出三个常见的异常并说明其作用较易18.简述String和StringBuffer的区别较易19.集合Collection包含哪两大子接口?它们的区别是什么?较易20.如何把一个字节流转换
6、成字符流?较易21.让一个类成为线程有哪两种方式?较易二、单项编程(共25题,抽2题,每题10分,共20分)1.设计一个矩形类,有长和宽两个属性,可以计算每一个矩形的面积和周长;再编写一个主类,在其主方法main中创立一个详细的矩形,求出该矩形的周长和面积。较易2.(1)设计一个圆类,有一个属性半径,可以计算每一个圆的面积和周长;再编写一个主类,在其主方法main中创立一个详细的圆形,求出该圆形的周长和面积。较易3.设计一个盒子类Box,它有长、宽、高三个私有成员属性,包含无参数和有参数的构造方法,分别实现设置和获取属性的setter和getter方法,以及求盒子体积的公有方法。其中,构造方法
7、用于对成员变量初始化,无参数的构造方法将成员变量初始化为0值。再编写一个主类BoxTest,在其主方法main()中创立假设干个Box对象,输出其长、宽、高及其体积的值。较易4.设计一个人类,有姓名、年龄、性别、身高、体重属性,以及吃饭、穿衣服、跑步行为;再编写一个主类,在其主方法main中创立两个人类对象,并分别为各个对象的属性赋初值,然后打印出各个对象的所有根本信息。较易5.编写学生类和成绩类。成绩有科目和分数信息。学生有姓名和成绩信息,学生类的getResult()方法显示输出成绩信息,setData()方法实现初始化学生信息。较难6.(1)定义一个动物类Animal,有动物类型属性ty
8、pe和动物发声的方法sound();(2)定义基于动物类的狗类Dog和猫类Cat,这两个类都要求覆盖父类的发声方法;(3)定义AnimalDemo类,声明一个Animal对象,分别创立一个Dog、Cat类的对象,然后通过Animal对象来访问Dog、Cat类对象的sound()方法。难7.(1)设计一个表示二维平面上圆的类Circle,有表示圆半径的protected类型的成员变量radius、获取和设置radius值的public方法、计算圆面积的public方法。(2)设计一个表示圆柱体的类Cylinder,它继承自类Circle,还包含有表示圆柱体高的protected类型的成员变量he
9、ight、获取和设置height值的public方法、计算圆柱体体积的public方法。(3)建立假设干个Cylinder对象,输出其半径、高及其体积的值。要求:A、每个类包含无参数和有参数的构造方法。构造方法用于对成员变量初始化,无 参数的构造方法将成员变量初始化为0值。B、子类的构造方法调用父类的构造方法,对父类中的成员变量初始化。较难8.请使用继承关系实现以下描绘: 较难自行车和豪车属于车类型车car:车牌号cid、车型dtype、价值cvalue自行车bicycle:车牌号cid、车型dtype、价值cvalue、链条chain豪车limo:车牌号cid、车型dtype、价值cvalu
10、e、导航(guide)9.使用一个类里面包含其他类的对象的方法实现以下描绘:较难有1个组长,手下有2个助手,每个助手有2部车。组长leader:姓名lname、年龄lage助手asist:编号aid、年龄aage、姓名aname、爱好ahobby车car:车牌号cid、车型dtype、价值cvalue10.使用一个类里面包含其他类的对象的方法实现以下描绘:较难有1个人,人有2个宠物且有2部车。人people:姓名pname、年龄page宠物pet:编号petid、年龄petage、姓名petname车car:车牌号cid、车型dtype、价值cvalue11.使用一个类里面包含其他类的对象的方
11、法实现以下描绘:较难有1个房间,里面有1个冰箱,冰箱里面有1个饮料房间有型号和大小2个属性冰箱有型号、颜色和耗电量3个属性饮料有类型和价值2个属性12.定义抽象的Intrument(乐器)类,声明一个抽象的play();定义一个派生类Stringed(弦类乐器),实现父类的抽象的play()。在main()中实例化Stringed类调用play()。难13.定义含有抽象方法print()的基类,在构造方法中调用print();print()方法在派生类被重写,该方法打印在派生类中定义的成员变量i,在定义i时给定非零的初始值;在main()中,创立派生类的对象,然后调用print()。难14.定
12、义一个接口Myinterface,有两个抽象方法max()和min();在Operation类中实现该接口,同时实现抽象方法max()和min(),它们分别用于求任意三个整数中的最大值和最小值。难15.定义一个Compute接口,有抽象方法add()、substract()、multiply()和divide();定义一个实现Compute接口的类Computer,然后创立Computer对象完成加、减、乘和除四个方法的调用。难16.设计一个汽车类Auto,有速度属性speed,另外,有启动state,加速speedup和停顿stop方法,然后,设计一个子类Bus表示公共汽车,Bus增加一个属
13、性passenger表示乘客数,另外添加两个方法gotOn和gotOff表示乘客上下车。较难17.设计一个时间类MyTime,包含一个构造方法,3个私有成员变量hour、minute、second以及它们相应的setter和getter方法,再加上一个转换成“XX时:XX分:XX秒格式字符串的方法toString。较易18.设计一个日期类MyDate,包含一个构造方法,3个私有成员变量year、month、day以及它们相应的setter和getter方法,再加上一个转换成“XXXX年XX月XX日 格式字符串的方法toString。较易19.实做一个点类Point,包含两个成员变量x,y分别表
14、示x和y坐标,两个构建器Point()和Point(int x0,int y0),以及一个movePoint(int dx,int dy)方法实现点的位置挪动。编写一个程序,创立两个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、书
15、名name、作者author和出版社press;再声明三个Book对象并赋值;然后依次用Set、List、Map集合来实现对Book对象数据的存储,并输出相应图书信息难24.设计a,共输出10个ab,也输出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 (军刀) Ax
16、e (斧头)三个详细的武器类继承Weapon 1)分别重写showMe方法,该方法功能是在控制台显示该武器的信息 注:武器的信息就包括它的名称和颜色3定义一个入口类Access 在main方法里面去测试功能 要求: 1) 定义一个List集合 2) 建立上面的三种武器对象各3个,给他们取名字,并且指定颜色 3) 把这些对象放在定义好的List里面 4) 循环这个List取出对象去调用武器类的showMe方法(二)宠物问题(较难)1定义一个Animal(动物)抽象类 要求:1定义两个属性 (1) 动物的名称 name (String类型) (2动物的毛色 color (String类型) 2定义
17、一个抽象方法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 (String类型)
18、(2家具的颜色 color (String类型) 2定义一个抽象方法showMe() 2定义Sofa(沙发) Desk(桌子) Chair (椅子)三个详细的家具类继承Furniture 1)分别重写showMe方法,该方法功能是在控制台显示该家具的信息 注:家具的信息就包括它的名称和颜色3定义一个入口类Access 在main方法里面去测试功能 要求: 1) 定义一个List集合 2) 建立上面的三种家具对象各3个,给他们取名字,并且指定颜色 3) 把这些对象放在定义好的List里面 4) 循环这个List取出对象去调用家具类的showMe方法(四)、箱子问题(难)1定义一个Box(箱子)类
19、 要求: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) 建立方法可以在箱子里面取出一个苹果 public Apple getAp
20、ple() 提示:取的时候注意判断箱子里面是否还有苹果存在 3) 建立方法查看箱子里面还有多少个苹果 public int getSize()4. 建立一个Access类 在main方法里面创立一个箱子对象和5个苹果对象测试往 箱子里面放苹果取苹果的方法 (五)、子弹发射问题(难)1定义一个Pistol (枪)类 要求:1定义一个属性,弹夹 (用int表示) charger 提示:用来表示当前子弹数量 2) 定义一个方法public void shoot() 该方法的功能是在控制台打印发射两个字,但是需要判断当前弹夹里 面还有子弹没 假如没有就打印没有子弹的提示, 注意:成功发射了之后弹夹会少
21、掉一个子弹 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分.黄色局部为填空。(一)用数据库存放城市信息(难)1创立名为test的
22、数据库2在数据库test中创立城市(City)表字段描绘长度类型备注City _id城市编号32VarcharPk主键City _name城市名称30VarcharCity _country所属国家30VarcharCity _note城市简介200Varchar 提供四个私有属性: 城市编号 城市名称 所属国家 城市简介 4建立 CityDao类,利用DBUtil类 建立方法对城市信息进展查询与删除操作1)建立方法通过城市名称查询单个城市public City findCity(String city_name)注:查询出来的城市信息封装在Ctiy对象里 2)可以通过Id删除某条城市信息pu
23、blic 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;import java.sql.Statement;public class DBUtil private Connection conn = null; / 数据库连
24、接对象 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.jdbc.Driver; final String URL = jdbc:mysql:/localhost:3306/
25、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(执行getConnection()方法出错:); e.printStackTrace(); public DBUtil()
26、getConnection(); try st = conn.createStatement(); catch (SQLException e) e.printStackTrace(); /* * 数据库查询 * param sql 传入的SQL语句 */public void executeQuery(String sql) try rs=st.executeQuery(sql);/执行SQL语句获得结果集 catch(Exception e) System.out.println(执行executeQuery(String sql)方法出错:+sql);/我们要养成习惯假如发生了错误首先看
27、打印出来的sql语句有没有问题 e.printStackTrace();/打印出错误原因 /* * 数据库增加/删除/修改 * param sql 传入的SQL语句 * return 0执行成功 */public int executeUpdate(String sql) int ret=-1; try ret=st.executeUpdate(sql);/执行SQL语句对数据表进展操作,变量ret存放对表修改了多少行 catch(Exception e) System.out.println(执行executeUpdate(sql)方法出错:+sql); e.printStackTrace(
28、);/打印出错误原因 finally close(); 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 City p
29、rivate 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(String cityName) this.cityName = cityName; public String getCityCountry() return cityCountry; public void setCityCountry(String cityCountry) this.cityCount
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1