《Java面向对象程序设计案例教程习题答案 汇总 (王贺 )第1-11章.docx》由会员分享,可在线阅读,更多相关《Java面向对象程序设计案例教程习题答案 汇总 (王贺 )第1-11章.docx(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Java面向对象程序设计案例教程 习题答案(王贺)第1章Java程序语言概述一、选择题D1. BC2. BA3. BC二、简答题Java语言具有以下一些特点:简单、面向对象、分布式、解释执行、鲁棒、平安、体系 结构中立、可移植、高性能、多线程以及动态性。1. 一般来讲,要创立一个Java程序需要以下几个过程:第一步:编写Java源程序。由于JDK没有提供专门的编辑工具,所以可以通过任意文 本编辑器进行编写Java源代码,例如记事本、notepad等,程序编辑完成后保存文件,然 后将文件的扩展名改为“.java”。第二步:编译源程序。在命令行窗口中首先找到编写的Java源程序的目录,然后通过 j
2、avac命令进行编译,将其编译成Java虚拟机能够识别的字节码文件,以“.class”作为 文件扩展名。第三步:调试运行程序。生成字节码文件后,通过java命令对.class”文件进行解 释读取并翻译成计算机能执行的代码,执行完成后,查看执行结果。如果程序有编译错误或 者逻辑错误,那么需要通过提示来修改程序并纠正错误,然后重新进行编译、运行。2. Java SE (Java Platform, Standard Edit ion ) Java SE 以前称为 J2SE。它允许开发 和3部署在桌面、服务器、嵌入式环境和实时环境中使用的Java应用程序。Java EE是在Java SE的基础上构建
3、的,它提供Web服务、组件模型、管理和通信API, 可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和Web2. 0 应用程序。Java ME (Java Platform, Micro Edition)。这个版本以前称为 J2ME。Java ME 为在 移动设备和嵌入式设备(比方手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一 个健壮且灵活的环境。3. 1. JAVA_HOME : JDK 安装目录。作用:其他相关环境变量配置可以引用,更加方便简洁。2. Path:%JAVA_HOME%bin;%JAVA_HOME%jrebi
4、n;作用:使系统可以找到并调用java, exe和javac. exe。3. classpath:. ;%JAVA HOME%libdt. jar;%JAVA HOME%libtools. jar作用:classpath环境变量的作用一告诉java虚拟机所有的可执行文件.class的位置。三、编程题1.public class Testl_l C.该类的方法都不能被重载D.以上说法都不对6)以下关于接口的描述中,错误的选项是(D)A.接I实际上是由常审和抽象方法构成的特殊类B. 一个类只允许继承一个接口C.定义接口使用的关键字是interfaceD.在继承接口的类中通常要给出接口中定义的抽象方
5、法的具体实现7)下面关于包的描述中,错误的选项是(A)A.包是假设干对象的集合B.使用package语句创立包C.使用import语句引入包D.包分为有名包和无名包两种8)如果中包含xyz类,那么该类可记作(C)9)以下方法中,与方法public void add(int a)为不合理的重载方法的是(B)A. public void add(char a) B. public int add(inl a)C. public void add(int a, int b) D. public void add(fioat a)10)设有如下类的定义:public class parentint c
6、hange() IClass Child extends Parent 那么下面的方法可加入Child类中的是(A)A. public int change() B. final int change(int i) C. private intchange() D. abstract int change() (2) 空题(1)在Java程序中,把关键字(super)加到方法名称的前面,可实现子类调用父类的 方法。(2)接口是一种只含有抽象方法或(常量)的特殊抽象类。(3) Java使用固定于首行的(package)语句来创立包。(4) Java的多态性主要表现在(变量隐藏)(方法覆盖)(方法
7、重载)三个方面。(5)没有子类的类称为(最终类),不能被子类重载的方法称为(最终方法),不能改变 值的量称为(常量)。3.编程题(1)建立一个汽车Aut。类,包括轮胎个数,汽车颜色,车身重量、速度等成员变量。并通过 不同的构造方法创立实例。至少要求:汽车能够加速,减速,停车。再定义一个小汽车 类Car,继承Auto,并添加空调、CD等成员变量,覆盖加速,减速的方法。1 .创立Auto类package org.hanqi. practise;23 public class Auto 28 56private int tyre;private String color;7private doubl
8、e weight:89private double speed;public Auto(int tyre, String color, double weight, double speed) 10super ();11this, lyre = tyre;1213this, color = color;this, weight = weight;1415this.speed = speed; )16public void accelerate01718(System. out. printin(*Auto 加速“);1920publ ic void decelerationO212223242
9、52627System. out. print In (wAuto 减速”): ) public void stopO (System, out. printin (*Auto 停车”); )2 .创立Car类package org. hanqi. practise;23 public class Car extends Auto 456 public Car(int tyre, String color, double weight, double speed) 7 super (tyre, color, weight, speed);89 )10 privateStringaircondi
10、tioner;11 privateStringCD;12 publicvoid accelerate013 14 System, out. printin(*Car 加速);15 16 publicvoid decelerationO17 18 System, out. print In (*Car 加速”);19 )20 )(2),个抽象类AbstractShape如下所示:abstract class AbstractShape final double PI=3.14;public abstract double getArea();public abstract double getG
11、irth();)编写AbstractShape类的一个子类,使该子类实现计算圆面积的方法gelArea()和计算周 长的方法getGirth( )oL选择题(1)Java中用来抛出异常的关键字是()A. try B. catch C. throw D. finally(2)()类是所有异常类的父类。A. Throwable B. Error C. Exception D. AWTError(3)在Java语言中,异常处理的出口是()A. try子句B. catch 子句C. finally子句D.以上说法都不对(4)当方法遇到异常又不知如何处理时,以下说法正确的选项是()A.捕获异常 B.声明
12、异常 C.抛出异常 D.嵌套异常(5)自定义异常类时,可以继承的类是()A. Error B. AppletC. Exception 及其子类D. AssertionError(6)在异常处理中,将可能抛出异常的方法放在()语句块中A. throws B. catch C. tryD. finally(7)对于trycatch子句的排列方式,以下正确的一项为哪一项()A.子类异常在前,父类异常在后 B.父类异常在前,子类异常在后C.只能有子类异常D.父类异常与子类异常不能同时出现(8)下面程序段的执行结果是什么?()public class Foopub!ic static voidmain(
13、String args) try(return;finallySystem, out. println(Finally);)A.编译能通过,但运行时会出现一个例外。B.程序正常运行,并输出“Finally。C.程序正常运行,但不输出任何结果。D.因为没有catch语句块,所以不能通过编2.填空题(1)捕获异常要求在程序的方法中预先声明,在调用方法时用by-catch-()语句捕获并处 理。(2)Throwable类有两个子类:()类和Exception类。(3) Java虚拟机能自动处理()异常。(4)抛出异常,生成异常对象都可以通过()语句实现。3.编程题 (D编写一个程序,从键盘读入5个整
14、数存储在数组中,要求在程序中处理数组越界的异常。1 .选择题(1)以下说法中错误的选项是()A.对Swing构件只能设置一个边框8. Swing构件能建立组合边框或自己设计边框C.在Swing构件中,按钮可以使用图标修饰D. Swing构件支持键盘代替鼠标的操作(2)向容器添加新构件的方法是(A)A. add( ) B. insert( ) C. fi 11 ()【).set ()(3)关于布局管理器LayoutManager,以下说法中正确的选项是(D)A.布局管理器是用来部署Java应用程序的网上发布的B. LayoutManager本身不是接口C.布局管理器是用来管理构件放置在容器中的位
15、置和大小的D.以上说法都不对JTcxtFicld类提供的GUI功能是(A)A.文本区域 B.按钮 C.文本字段I).菜单(5)将GUI窗口划分为东、西、南、北、中五个局部的布局管理器是(D)A. FlowLayout B. GridLayout C. BoxLayout D. BorderLayout(6)关于Panel,以下说法中错误的选项是(D)A. Panel可以作为最外层的容器单独存在B. Panel必须作为一个构件放置在其他容器中C. Panel可以是透明的,没有边框和标题D. Panel是一种构件,也是一种容器2.填空题(1) ( BorderLayout )包括5个明显的区域:东
16、、南、西、北、中。(2)Java的图形界面技术经历了两个开展阶段,分别通过提供AWT开发包和(Swing)开发包 来表达。(3)可以使用setLoaction( )、setSize ()或(setBounds()中的任何一种方法设置组件 的大小或位置。(4)( GridLayout )布局管理器使容器中各个构件呈网格布局,平均占据容器空间。(5)框架的默认布局管理器(BorderLayout )o登录 取消图 7-20package com. zhouzhou: import java. awl. *;iinport javax. swing. *:public class Demol1 ex
17、tends JFrame /定义组件JPanel jpl, jp2, jp3;JLabel jlbl, jlb2;JButton jbl, jb2;JTcxtField jtfl;JPasswordField jpf1:public static void main(String args)( / TODO .Auto-generated method stub Demol1 dl = new Demol1();构造函数public Demol 1 () jpl = new JPanel ();jp2 = new JPanel ();jp3 = new JPanel0;jlbl = new J
18、Label(用户名);jlb2 = new JLabcl (“密码”);jbl = new JBullon(登录”); jb2 = new JButton(取消);jtfl = new JTextField(lO);jpfl = new JPasswordField(10);/ 设置布局管理(上面忘记:extends JIrame.这里出错了) this, setLayout(new GridLayout(3, 1);/加入各个组件 jpl.add(jlbl);jpl. add(jtfl):jp2. add(jlb2);jp2. add(jpfl);jp3. add(jbl):jp3. add
19、(jb2);/加入到JFramethis. add(jpl):this, add(jp2);this. add(jp3);this.setSize(250, 150):this. setTitle(登录);this. setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE): this.setVisible(true);)制作如图7-21所示的选择界面。图用户庄册界面- x你有欢的运动足球 篮球匚网球你的柱别。里。女注册用户取消用户图 7-21package com. zhouzhou:import java. awl. *;import javax. s
20、wing. *:pub1ic class Demo12 extends JFrame /定义组件JPanel jpl, jp2, jp3;JLabel jlbl, jlb2;JCheckBox jcbl, jcb2, jcb3;JRadioButton jrbl, jrb2;JButton jbl, jb2:/单项选择设宜ButtonGroup bg, bg2;public static void main(String args)( / TODO Auto-generated method stub Demo 12 d2 = new Demo12();构造函数pub 1 i c Demo 1
21、2() jpl = new JPanel ();jp2 = new JPanel ():jp3 = new JPanel ();jlbl = new JIabel (“你喜欢的运动”);jlb2 = new JLabel (“你的性别”);jcbl = new JChcckBox(足球);jcb2 = new JCheckBox(篮球);jcb3 = new JCheckBox(“网球”);/下面可以设置单项选择/ ButtonGroup bg2=new ButtonGroup();/ bg2. add (jcbl);/ bg2. add(jcb2);/ bg2. add (jcb2);jrb
22、l = new JRadioButton(男);jrb2 = new JRadioButton (女);/ 一定要把jrbl, jrb2放入到一个ButtonGroup里面 ButtonGroup bg = new ButlonGroupO ;bg. add (jrbl);bg. add (jrb2);jbl = new JButton(注册用户”);jb2 = new JButton(取消用户”);this. setLayout (new Gridl.ayout (3, 1);jpl. add(jlbl);jpl. add(jcbl):jpl. add(jcb2);jpl. add(jcb3
23、);jp2. add(jlb2);jp2. add(jrbl);jp2. add(jrb2);jp3. add(jbl);jp3. add (jb2);/加入到JFramethis, add(jpl);this. add(jp2);this. add(jp3);this. sctSizc(300, 200);this. setTitle(用户注册界面”);this. setDefaultCloseOperation(JFrame. EXIT ON CLOSE); this.setVisible(true);)第8章习题答案一、选择题1 .C 2.A 3.B 4.BC 5,D二八简答题2 .JD
24、BC操作步骤(1)导入驱动程序(2)创立连接(3)创立 Statement(4)书写SQL语句(5)执行SQL语句获得结果(6)处理结果(7)关闭连接2.列表对于数据类型Java数据类型SQL数据类型bytetiny intSshortsmall intintintlongbig intfloatnumberDoublenumberDateDateStringdata/timc/datatiinc varchar3.next方法工作流程,首先跳转进入结果集对象的卜.一行记录,如果记录不为空,返回值为 true,否那么返回值为falseo三、编程题1.固定SQL语句方式:public int a
25、dminReg(String uname, String pswd) int result = -1;String driverClass = com.microsoft.sqIserver.jdbc.SQLServerDriver;String dbUrl = jdbc:sqlserver:/localhost: 1433;databaseName=TestDB;Connection connection = null;Statement stmt = null;Class.forNanie(driverClass);connection = DriverManager.getConnect
26、ion(dbUrl, sa, sasa);stmt = connection.crealeStatementO;String sql = insert into tb_admin(admin_namc,adinin_pswd) values ( + unamc +二“+ pswd +result = stmt.executeUpdatc(sql); catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.prin(StackTrace();)finally if (stmt != null)
27、try stmt.closeO; catch (Exception c) if (connection != null)cry (connection.close(); catch (Exception e) return result;预编译SQL语句方式:public int adminReg(String uname. String pswd) int result = -1;String driverClass = com.microsoft.sqlserver.jdbc.SQLServerDriver; public static void main(String args) Sys
28、lem.7wr.println(I love Java!);I)public class Testl_2 public static void main(String args) int r = 3;float pai = 3.14f;float s = pai*r*r;System.out.printin(圆形的面积为:+s);第2章Java程序设计语法基础一、选择题D1. DD2. CB3. CD4. A二、简答题1. Java的基本数据类型包括整型、浮点型、字符型、布尔型float型常量应当用F或f做后缀,例如123. 4Fodouble型常量应当用I)或d做后缀,例如123. 4(1,
29、允许省略后缀。2. 见书252小节三、编程题import java.util.Scanner;public class Test2_l public static void main(String args) Scanner input = new Scanner(System.in);5丫5立巾。妙.2M:1伏”请输入第一个数字:”); int a = input.nextlnt();System.out.println(请输入第二个数字:”); int b = input.nextlnt();5丫56巾0妙.9511|1(请输入第三个数字:”); int c = input.nextlnt
30、();int max;String dbUrl = jdbc:sqlserver:/localhost: l433;databaseName=TestDB;Connection connection = null;PrcparcdStatcmcnt pstmt = null;try Class.fbrNamc(drivcrClass);connection = DriverManager.getConnection(.lbUrl, sa, sasa);String sql = insert into tb_admin(admin_name,admin_pswd) values (?,?); p
31、stmt = connection.prepareStalement(sql);pstmt.setString(l, uname);pstmt.setString(2, pswd);result = pstm(.executeUpdate(); catch (ClassNotFoundExccption c) e.printStackTrace(); catch (SQLExccption e) e.prin(S(ackTrace();)finally if (pstmt != null) try (pstmt.closeO; catch (Exception c) )if (connecti
32、on != null) try (connection.closeO; catch (Exception c) return result;)2.通用性很强的JDBC类import java.sql.Conncction:import java.sql.DriverManager;import java.sql.ResultSct;import java.sql.SQLException;import java.sqLStatement;public class DBConn private final String className = com.microsoft.sqlservcr.jd
33、bc.SQLServcrDriver;privatefinalSiringconnectionUrljdbc:sqlserver:/localhost:1433;databaseName=TestDB;private final String username = nsa;private final String password = sasa;private Connection connection;private Statement stmt;public DBConn() try Class. forName(className);connection = DriverManager.
34、getConnection(connectionUrl, username, password);System.out.println(connection);stmt = connection.createStatementO; catch (Exception e) e.prin(StackTrace();public int update(String sql) int r = -1;if (stmt != null) try r = stmt.exccuteUpdatc(sql); catch (SQLException e) / TODO Auto-gcncratcd catch b
35、lock e.prinlStackTraceO;return r;)public ResukSet query(String sql) ResultSet rs = null;if (stmt != null) try (rs = stmt.cxccutcQucry(sql); catch (SQLException e) / TODO Auto-generatcd catch block e.prinlStackTraceO;)return rs;1public void close() if (connection != null) try (connection.close();)cat
36、ch (SQLException e) / TODO Auto-gcncratcd catch block e.printStackTraceO;第9章习题答案一、选择题1. C 2.A 3.AB 4.AD 5.A 6.A7.B二、简答题1 .字节流是以直接的方式传送数据,字符流是以字符的方式传送数据。2 .读取操作步骤:(1)翻开文件,(2)声明缓存空间,(3)读取/写入,(4)关闭构造方法:1) File (String pathname):通过给定路径创立一个新的File类对象。2) File(String parent, String child):通过给定的文件夹目录和文件名创立一个
37、新 的File类对象。3) File(File parent, String child):通过给定的文件对象和文件名创立一个新的 File类对象。常用方法public String gctNamcO :返回文件对象的 XXXXXXX。1. public String getPathO:返回文件对象所在路径名。2. public String getAbsolutePath ():返回文件对象的绝对路径名。3. public String getParent ():返回文件对象所在父目录路径。如果文件对象没有父目录, 那么返回nullopublic boolean exists():判断文件对
38、象所表示的文件或文件夹是否存在,存在返回 true,不存在返回false。4. public boolean isDirectory():判断文件对象所表示的是否为目录(文件夹),如果是 返回true,否那么返回false。5. public boolean isFileO:判断文件对象所表示的是否为一个标准文件,如果是,返回 true,否那么返回false。三、编程题package p9_7;import java.io.FileWriter;import java.io.IOException;import java.util.Scanner;public class C97_l (请输入
39、字符串:); Scanner scanner=new Scanner(System.in); String s=scanner.nextLine();String ss=s.toUpperCase();try (FileWriter writer:new FileWriter(a.txt);writcr.writc(ss);writer.closeO; catch (lOExccption e) / TODO Auto-generated catch block e.printStackTrace();package p9_7;import java.io.Filc;import java.i
40、o.FileWriter;import java.io.IOException;import java.util.Random;public class C97_2 public static void main(String args) File f=new File(lest.txt);if(!f.exists()Itry f.createNewFile(); catch (lOException e) / TODO Auto-gencratcd catch block e.printStackTrace();Random r=new Random。;StringBuffer sbf=ne
41、w StringBuffer();for(int i=l;i0) String message = Thread.curreniThread().getName() + 卖了第+ ticket + “票”;System.out.println(message);ticket;try (Thread.sleep( I ()0); catch (InterruptedException e) / TODO Auto-gcncratcd catch block e.printStackTraceO;I else break;if(ab) max = a;else max = b;)if(maxc)
42、max = c;)System, out. print In (最大的数是:+max);)public class Test2_2 public static void main(String args) int sum = 0;for(int i = 1;i = 20;i+) int n = 1;for(int j = 1;j = i;j+) n = n * j;) sum = sum + n;)System. out .println(l!+2!+3! +.+20! =+sum); )public class Test2_3 public static void main(String a
43、rgs) int i, j;for (i = 1; i = 100; i+) if (i = 1 | i = 2) System.out.printIn(i); continue;)for (j = 2; j i; j+) if (i % j = 0)break;if (j = i - 1) System.out.println(i);)4.public class Test2_4 public static void main(String args) for (int i = 1; i = 9; i+) for (int j = 1; j = i; j+) System.out.print(j + * + i + = + i * j + t);/ t跳到下一个TAB位置)System.out.println();)5.public class Tes