习题解答-Java面向对象程序设计-邢国波-清华大学出版社
Java面向对象程序设计课后答案

Exception in thread "main" ng.NoClassDefFoundError: Xiti8/class
执行java Xiti8得到的输出结果
I'm glad to meet you
9.属于操作题,解答略。
Exception in thread "main" ng.NoSuchMethodError: main
执行java xiti8得到的错误提示
Exception in thread "main" ng.NoClassDefFoundError: xiti8 (wrong name: Xiti8)
for(i=1;i<=1000;i++)
{ for(j=1,sum=0;j<i;j++)
{ if(i%j==0)
sum=sum+j;
}
if(sum==i)
Java面向对象程序设计
清华大学出版社
(编著 耿祥义 张跃平)
习题解答
建议使用文档结构图
(选择Word菜单→视图→文档结构图)
习题1
1.James Gosling
、、、、
2.
(1)使用一个文本编辑器编写源文件。
(2)使用Java编译器(javac.exe)编译Java源程序,得到字节码文件。
输出110
if-else语句书写的不够规范,复合语句缺少大括号“{}”,代码不够清晰。
2.你好好酷!!
3.
public class Xiti3_3
习题答案8-Java面向对象程序设计(第3版)-赵生慧-清华大学出版社

第八章【练习8.1】1.A2.A3.B4. 组件是GUI程序的基本组成元素,任何一个GUI就是由若干组件对象构成的。
Swing是在AWT基础之上构建的一套新的Java图形界面库,其不再依赖操作系统的本地代码而是自己负责绘制组件的外观,因此也被称为轻量级(Light-weight)组件,这是它与AWT组件的最大区别。
Swing中几乎所有的类都直接或间接继承自AWT中的类,另一方面,Swing的事件模型也是完全基于AWT的,因此,AWT和Swing并非两套彼此独立的Java图形库。
5. 容器组件指那些能够“容纳”组件的特殊组件,如窗口、面板、对话框等。
容器可以嵌套,即容器中又包含容器。
Swing提供的常用容器组件有窗口、面板、可滚动面板、分割面板、分页面板等。
6.①顶层容器:指GUI程序中位于“最上层”的容器,其不能被包含到别的容器中,如窗口、对话框等。
②非顶层容器:位于顶层容器之下的容器,如面板、内部窗口等。
7. JLabel(标签)用于显示文字或图片,不能接受用户的输入。
JTextField (文本框) 可以接受用户输入或编辑单行文本。
JTextArea(文本区) 接受用户输入或编辑多行文本。
JPasswordField(密码输入框) 是JTextField 的子类,两者的主要区别是JPasswordField 不会显示出用户输入的内容,而只会显示出程序指定的一个固定字符,比如'*'。
8. 将多个单选按钮加入到同一个ButtonGroup群组对象中构成一组,保证该组按钮任一时刻只能有一个单选按钮被选中。
【练习8.2】1.C2.D3.D4.D5.//BasicSwingComponent.java1 import java.awt.FlowLayout;2 import java.awt.event.ItemEvent;3 import java.awt.event.ItemListener;45 import javax.swing.JButton;6 import javax.swing.JCheckBox;7 import javax.swing.JComboBox;8 import javax.swing.JFrame;9 import javax.swing.JLabel;10 import javax.swing.JList;11 import javax.swing.JPanel;12 import javax.swing.JPasswordField;13 import javax.swing.JRadioButton;14 import javax.swing.JScrollPane;15 import javax.swing.JTextArea;16 import javax.swing.JTextField;1718 public class BasicSwingComponent {1920 public static void main(String[] args) {21 JFrame win = new JFrame("JFrame");22 win.setSize(300, 300);23 win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);24 win.setLayout(new FlowLayout());2526 JPanel jp1 = new JPanel();27 JPanel jp4 = new JPanel();28 JLabel label1 = new JLabel("用户名:");29 jp1.add(label1);30 JTextField textField = new JTextField(10);31 jp1.add(textField);32 jp4.add(new JLabel("口令:"));33 JPasswordField pfd = new JPasswordField(10);34 pfd.setEchoChar('*');35 jp4.add(pfd);3637 JPanel panel2 = new JPanel();38 JLabel label12 = new JLabel("性别:");39 panel2.add(label12);40 JRadioButton radio = new JRadioButton("男");41 radio.setSelected(true);42 panel2.add(radio);43 JRadioButton radio2 = new JRadioButton("女");44 panel2.add(radio2);4546 JPanel panel3 = new JPanel();47 JLabel label3 = new JLabel("爱好:");48 panel3.add(label3);49 JCheckBox check = new JCheckBox("运行");50 panel3.add(check);51 JCheckBox check2 = new JCheckBox("音乐");52 check2.setSelected(true);53 panel3.add(check2);54 JCheckBox check3 = new JCheckBox("网络");55 panel3.add(check3);5657 JPanel panel4 = new JPanel();58 JLabel label4 = new JLabel("JComboBox:");59 panel4.add(label4);60 String[] majors = { "软件工程", "计算机", "物联网", "大数据" };61 JComboBox cbxMajor = new JComboBox(majors);62 cbxMajor.addItemListener(new ItemListener() {6364 @Override65 public void itemStateChanged(ItemEvent e) {66 String selection=(String)e.getItem();//获取选择项67 if(e.getStateChange()==ItemEvent.SELECTED )68 System.out.println(selection);6970 }});71 panel4.add(cbxMajor);7273 JPanel panel5 = new JPanel();74 panel5.add(new JLabel("JList:"));75 JList lst = new JList(majors);76 panel5.add(lst);7778 JTextArea ta = new JTextArea();79 ta.setText("此处为简介 \n第二行\n第三行\n第四行");80 ta.setRows(3);81 ta.setColumns(10);82 JScrollPane scp = new JScrollPane(ta);8384 JPanel panel6 = new JPanel();85 JButton button = new JButton("提交");86 panel6.add(button);8788 win.add(jp1);89 win.add(jp4);90 win.add(panel2);91 win.add(panel3);92 win.add(scp);93 win.add(panel6);9495 win.setVisible(true);96 }97 }【练习8.3】1. D2. A3.①事件源(Event Source):事件的产生者或来源。
java面向对象程序设计第二版课后答案.doc

java 面向对象程序设计第二版课后答案【篇一:java 面向对象程序设计课后答案】s=txt>java 面向对象程序设计清华大学出版社(编著耿祥义张跃平)习题解答建议使用文档结构图(选择word 菜单→视图→文档结构图)习题11.james gosling、、、、2.(1)使用一个文本编辑器编写源文件。
(2)使用java 编译器(javac.exe )编译java 源程序,得到字节码文件。
(3)使用java 解释器(java.exe )运行java 程序3.java 的源文件是由若干个书写形式互相独立的类组成的。
应用程序中可以没有public 类,若有的话至多可以有一个public 类。
4.系统环境path d\jdk\bin;系统环境classpath d\jdk\jre\lib\rt.jar;.;5. b6.java 源文件的扩展名是.java 。
java 字节码的扩展名是.class 。
7. d8.(1)speak.java(2)生成两个字节码文件,这些字节码文件的名字speak.class 和xiti8.class ava xiti8(4)执行java speak 的错误提示exception in thread main ng.nosuchmethoderror: main 执行java xiti8 得到的错误提示exception in thread main ng.noclassdeffounderror: xiti8 (wrong name: xiti8) 执行java xiti8.class 得到的错误提示exception in thread main ng.noclassdeffounderror:xiti8/class 执行java xiti8 得到的输出结果im glad to meet you9.属于操作题,解答略。
习题21. d2.【代码1】【代码2】错误//【代码3】更正为float z=6.89f; 3.float 型常量后面必须要有后缀“f或”“f。
8- 流和文件-Java面向对象程序设计-邢国波-清华大学出版社

当且仅当不存在具有此抽象路径名指定的名称的文件 时,创建由此抽象路径名指定的一个新的空文件。即 检查文件是否存在,如果不存在则创建该文件。
8.1 标准文件类File
这个方法会产生IOException。所以我们要把它放 在try…catch语句块中。
8.1 标准文件类File
构造方法之三 File(File dirObj, String filename) 根据dirObj抽象路径名和filename路径名字
符串创建一个新 File 实例。 例如: File f2= new File("c:\\test\\dir1"); File file = new File(f2,"3.txt");
返回:如果指定的文件不存在并成功地创建,则 返回 true;如果指定的文件已经存在,则返回 false。
8.1 标准文件类File
(2)创建目录对象(一般使用绝对路径) File f2 = new File(“d:\\mydir\\dir1”);
注意:转义字符“\\”作为路径分隔符。 对象产生后也没有创建目录,需要使用 mkdir()和mkdirs()方法。这些方法不抛异常, 所以没必要用try…catch语句块捕获。
➢ public String[] list()
返回由此抽象路径名所表示的目录中的文件和 目录的名称所组成字符串数组。 如果此抽象路 径名并不表示一个目录,则此方法将返回 null。 否则,为目录中的每个文件或目录返回一个字 符串数组。表示目录本身及其父目录的名称不 包括在结果中。每个字符串是一个文件名,而 不是一条完整路径。
(完整版)Java程序设计习题附答案(三)

第三部分面向对象程序设计1、引用数据种类变量拥有基本属性为( A 、变量名 B、数据种类ABCD )C、储存单元D、变量值。
2、面向对象技术的特征是(ACD )A 、继承性B 、有效性C、多态性3、以下哪个命题为真?(C)D 、封装性。
A、全部类都一定定义一个结构函数。
B、结构函数一定有返回值。
C、结构函数能够接见类的非静态成员。
D、结构函数一定初始化类的全部数据成员。
4、对于子类与父类关系的描绘正确的选项是(ACD )A、子种类的数据能够隐式变换为其父种类的数据;B、父种类的数据能够隐式变换为其子种类的数据;C、父种类的数据一定经过显示种类变换为其子种类的数据;D、子种类实例也是父种类的实例对象。
5、以下哪一项说法最好地描绘了Java 中的对象?( C)A 、对象是经过import 命令引入到程序中的全部事情B、对象是方法的会合,这些方法在小程序窗口或应用程序窗口中产生图形元素,或许计算和返回值C、对象是一种数据结构,它拥有操作数据的方法D、对象是一组拥有共同的结构和行为的类6、下边哪个重点字不是用来控制对类成员的接见的?(C)A 、 public B、 protected C、 default D、 private7、 Java 语言正确的常量修饰符应当是(D)A 、 final B、 static final C、 static D、 public static final ;8、接口的全部成员域都拥有public、static和final属性。
9、接口的全部成员方法都拥有public和abstract属性。
10、编译以下源程序会获得哪些文件?(C)class A1{}class A2{}public class B{public static void main(String args[]){}}A) 只有B)只有 A1.class 和 A2.class 文件C)有、 A2.class 和 B.class 文件D)编译不行功11、以下哪一种说法是正确的?( A )A、私有方法不可以被子类覆盖。
习题解答-Java面向对象程序设计-邢国波-清华大学出版社

第1章一、问答题1.Java有哪些特点?Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。
Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
Java语言是简单的。
Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。
Java语言不使用指针,而是引用。
并提供了垃圾回收机制,使得程序员不必为内存管理而担忧。
Java语言是纯粹面向对象的。
Java语言提供类、接口和继承等。
Java语言是分布式的。
Java语言支持Internet应用的开发,Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
Java语言是健壮的。
Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。
安全检查机制使得Java更具健壮性。
Java语言是安全的。
Java提供了一个安全机制以防恶意代码的攻击。
Java对通过网络下载的类具有一个安全防范机制,并提供安全管理机制让Java应用设置安全哨兵。
Java语言是体系结构中立的。
Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。
这种途径适合于异构的网络环境和软件的分发。
Java语言是跨平台的。
Java程序的字节码文件可以在任何一个操作系统上运行。
2.编译Java Application程序的命令是什么?运行命令是什么?编译命令:javac 源程序的文件名运行命令:java main方法所在类的类名3.Java应用程序分几类?各有什么特点?不同的Java程序运行在不同的环境中,习惯上将运行环境相同的Java程序归为一类,可以分3类:Java Application应用程序,属于JavaSEApplet小程序(目前实际开发中基本不使用)Servlet程序(在JavaEE中使用)二、编程题编写一个文件名为FirstProgram的Java Application,功能是输出“Hello,EveryOne!”,写出编译和运行文件的命令和编译器产生的文件名。
模拟试题1及答案-Java语言程序设计(第3版)-沈泽刚-清华大学出版社
Java面向对象程序设计模拟试题1一、单项选择题(本大题共15小题,每小题1分,共15分)1. Java语言属于A. 机器语言B. 高级语言C. 自然语言D. 汇编语言2. Java源文件的扩展名是A. docB. exeC. javaD. class3. Java语言的字符使用的字符编码是A. ASCIIB. UnicodeC. UTF-8D. GB23124. Java中int类型所占字节数是A. 1B. 2C. 4D. 85. 给定下面代码段,程序运行结果是public class Foo{public static void main(String[] args){int i = 1;int j = i++;if((++i > j) && (i++ == j)){i += j;}System.out.println("i = "+i) ;}}A. i = 1B. i = 2C. i = 3D. i = 46. 设有Circle类,执行下面语句后,哪个对象可以被垃圾回收器回收Circle a = new Circle();Circle b = new Circle();Circle c = new Circle();a = b;a = c;c = null;A.原来a所指的对象B.原来b所指的对象C.原来b和c所指的对象D.原来c所指的对象7. 下列程序段的运行结果为int index = 1;int foo[] = new int[3];int bar = foo[index];int baz = bar + index;A. baz 的值为0B. baz 的值为1C. baz 的值为2D. 抛出一个异常8. 执行下列语句后输出的结果是String s = "\"Hello,World!\"";System.out.println(s.length());A. 12B. 14C. 16D. 189. 下列代码执行后输出foo的结果为int index = 1;String[] test = new String[3];String foo = test[index];System.out.println(foo);A. ""B. nullC. 抛出一个异常D. 代码不能编译10. 下面程序运行结果为class Super{public int i = 0;public Super(String text){i = 1;}}public class Sub extends Super{public Sub(String text){i = 2;}public static void main(String[] args){Sub sub = new Sub("Hello");System.out.println(sub.i);}}A. 该程序有编译错误B. 编译成功输出0C. 编译成功输出1D. 编译成功输出211.下面代码在运行时会产生什么异常int a[] = {1,2,3,4,5};System.out.println(a[5]);A. ArrayIndexOutOfBoundsExceptionB. IndexOutOfBoundsExceptionC. ObjectClastExceptionD. NullPointerException12.有下列一段代码,执行后输出结果为。
3- 面向对象编程-Java面向对象程序设计-邢国波-清华大学出版社
3.2.4多态
多态是实现接口的多个类或一个父类的多 个子类有相同的方法名,但是具有不同的 表现方式。
例如,动物类具有喊叫的方法,但是它的子 类猫和子类狗的喊叫效果却不一样。
3.3 java类与对象
3.3.1 java类的定义
java类是组成程序的基本单位,所有代码都定 义在类中。Java中类的定义格式如下: [类修饰符] class 类名[extends 父类名 ] [implements 接口名列表 ] {
8
3.2.3继承
继承是类之间的一种代码重用机制。如果 A类继承了B类,则A类拥有了B类的除了 私有属性和私有方法外的所有属性和方法 ,同时可以添加自己特有的属性和方法。
例如,汽车类具有型号、车牌、价格、 颜色属性,具有启动、挂挡、刹车等方 法。公共汽车属于汽车的子类,则除了 具有汽车类的属性和方法外,还增加了 票价、车次、站牌等属性。
17
修饰符列表是可选项,根据实际情况定义 ,包括:public、protected、private 、abstract、static、final、 synchronized等, 其中public、protected、private不能 同时存在。
18
返回值类型可以是任何一种数据类型,包 括8种基本类型、类名、接口名、数组等 ,也可以是void。 如果该方法最终不返回任何结果,则需要 定义成void。如果不是void,则方法体最 后要有return语句,return的值要跟方法 头中写的返回值类型一致。
7
3.2.2 封装
封装是指把同一类事物的特征和行为都定义 到一个类里,变成类的属性和方法。同时通 过访问控制符来定义每个属性和方法的可见 性。
例如,一个圆有半径,还有计算自己的面 积和周长的方法。通过定义一个圆类,将 半径定义成圆类的属性,将计算圆的面积 和周长的函数定义成圆的方法,则实现了 圆类的封装。
习题答案10-Java面向对象程序设计(第3版)-赵生慧-清华大学出版社
习题101、//User.java1 import java.sql.SQLException;23 /**4 * 用户类,用于记录各类登录用户信息5 *6 */7 public abstract class User {89 //习题10-110 public abstract boolean login(String id,String password) throws SQLException;1112 protected String username; //用户名13 protected String password; //口令14 protected String UserType; //用户类型151617 public String getUsername() {18 return username;19 }20 public void setUsername(String username) {21 ername = username;22 }23 public String getPassword() {24 return password;25 }26 public void setPassword(String password) {27 this.password = password;28 }2930 public String getUserType() {31 return UserType;32 }33 public void setUserType(String userType) {34 UserType = userType;35 }3637 public User() {}38 public User(String username, String password, String userType) {39 ername = username;40 this.password = password;41 UserType = userType;42 }43 }//Administrator2.java1 import java.sql.SQLException;23 import dao.AdministratorDao;4 import dao.AdministratorDaoImpl;5 import er;6 import util.Const;78 public class Administrator2 extends User {910 public Administrator2() {11 erType="管理员";12 }14 @Override15 public boolean login(String id, String password) throws SQLException {16 AdministratorDao dao=new AdministratorDaoImpl();17 return dao.login(id, password);18 }19 }//Student2.java1 import java.sql.SQLException;23 import dao.StudentDao;4 import dao.StudentDaoImpl;5 import entity.Student;6 import er;7 import util.Const;89 /**10 * 学生实体类,与表student对应11 *12 */13 public class Student2 extends User {1415 private String name; //姓名16 private String phone; //手机号17 private String sex; //性别18 private String department; //所属院系19 private String classname; //班级20 private String major; //所学专业2122 public Student2() {23 erType="学生";24 }2526 @Override27 public boolean login(String id, String password) throws SQLException {28 StudentDao dao=new StudentDaoImpl();29 Student s=dao.findStudentById(id);30 if(s!=null) {31 if(s.getPassword().equals(password))32 return true;33 else34 return false;35 }else36 return false;37 }3839 public String getName() {40 return name;41 }42 public void setName(String name) {43 = name;44 }4546 public String getPassword() {47 return password;48 }49 public void setPassword(String password) {50 this.password = password;51 }52 public String getPhone() {53 return phone;54 }55 public void setPhone(String phone) {56 this.phone = phone;57 }58 public String getSex() {59 return sex;61 public void setSex(String sex) {62 this.sex = sex;63 }64 public String getDepartment() {65 return department;66 }67 public void setDepartment(String department) {68 this.department = department;69 }70 public String getClassname() {71 return classname;72 }73 public void setClassname(String classname) {74 this.classname = classname;75 }76 public String getMajor() {77 return major;78 }79 public void setMajor(String major) {80 this.major = major;81 }82 }//Teacher2.java1 import java.sql.SQLException;2 import dao.TeacherDao;3 import dao.TeacherDaoImpl;4 import entity.Teacher;5 import er;6 import util.Const;78 /**9 * 教师实体类,与表teacher对应10 *11 */12 public class Teacher2 extends User {1314 private String name; //姓名15 private String sex; //性别16 private int age; //年龄1718 public Teacher2() {19 erType="教师";20 }2122 @Override23 public boolean login(String id, String password) throws SQLException {24 TeacherDao dao=new TeacherDaoImpl();25 Teacher t=dao.findTeacherById(id);26 if(t!=null) {27 if(t.getPassword().equals(password))28 return true;29 else30 return false;31 }else32 return false;33 }343536 public String getName() {37 return name;38 }3940 public void setName(String name) {41 = name;42 }4344 public String getSex() {45 return sex;46 }4748 public void setSex(String sex) {49 this.sex = sex;50 }5152 public int getAge() {53 return age;54 }5556 public void setAge(int age) {57 this.age = age;58 }5960 }2、//Loginable.java1 import java.sql.SQLException;23 public interface Loginable {45 public abstract boolean login(String id, String password) throws SQLException;67 }//Administrator2.java1 import java.sql.SQLException;23 import dao.AdministratorDao;4 import dao.AdministratorDaoImpl;5 import er;6 import util.Const;78 public class Administrator2 implements Loginable{910 private String id; //教工号11 private String password; //登录密码12 private String userType;//用户类型1314 public Administrator2() {15 erType="管理员";16 }1718 @Override19 public boolean login(String id, String password) throws SQLException {20 AdministratorDao dao=new AdministratorDaoImpl();21 return dao.login(id, password);22 }23 }//Student2.java1 import java.sql.SQLException;23 import dao.StudentDao;4 import dao.StudentDaoImpl;5 import entity.Student;6 import er;7 import util.Const;89 /**10 * 学生实体类,与表student对应11 *12 */13 public class Student2 implements Loginable{1415 private String id; //学号16 private String password; //登录密码17 private String userType;//用户类型1819 private String name; //姓名20 private String phone; //手机号21 private String sex; //性别22 private String department; //所属院系23 private String classname; //班级24 private String major; //所学专业2526 public Student2() {27 erType="学生";28 }2930 @Override31 public boolean login(String id, String password) throws SQLException {32 StudentDao dao=new StudentDaoImpl();33 Student s=dao.findStudentById(id);34 if(s!=null) {35 if(s.getPassword().equals(password))36 return true;37 else38 return false;39 }else40 return false;41 }4243 public String getName() {44 return name;45 }46 public void setName(String name) {47 = name;48 }4950 public String getPassword() {51 return password;52 }53 public void setPassword(String password) {54 this.password = password;55 }56 public String getPhone() {57 return phone;58 }59 public void setPhone(String phone) {60 this.phone = phone;61 }62 public String getSex() {63 return sex;64 }65 public void setSex(String sex) {66 this.sex = sex;67 }68 public String getDepartment() {69 return department;70 }71 public void setDepartment(String department) {72 this.department = department;73 }74 public String getClassname() {75 return classname;76 }77 public void setClassname(String classname) {78 this.classname = classname;79 }80 public String getMajor() {81 return major;82 }83 public void setMajor(String major) {84 this.major = major;85 }86 }//Teacher2.java1 import java.sql.SQLException;2 import dao.TeacherDao;3 import dao.TeacherDaoImpl;4 import entity.Teacher;5 import er;6 import util.Const;78 /**9 * 教师实体类,与表teacher对应10 *11 */12 public class Teacher2 implements Loginable {1314 private String id; //教工号15 private String password; //登录密码16 private String userType;//用户类型1718 private String name; //姓名19 private String sex; //性别20 private int age; //年龄2122 public Teacher2() {23 erType="教师";24 }2526 @Override27 public boolean login(String id, String password) throws SQLException {28 TeacherDao dao=new TeacherDaoImpl();29 Teacher t=dao.findTeacherById(id);30 if(t!=null) {31 if(t.getPassword().equals(password))32 return true;33 else34 return false;35 }else36 return false;37 }383940 public String getName() {41 return name;42 }4344 public void setName(String name) {45 = name;46 }474849 public String getSex() {50 return sex;51 }5253 public void setSex(String sex) {54 this.sex = sex;55 }5657 public int getAge() {58 return age;59 }6061 public void setAge(int age) {62 this.age = age;63 }6465 }3、//StudentService.java1 import java.sql.SQLException;2 import java.util.List;34 import dao.StudentDao;5 import dao.StudentDaoImpl;6 import entity.Student;78 public class StudentService implements StudentDao{910 private StudentDao dao=new StudentDaoImpl();1112 @Override13 public int add(Student s) throws SQLException {14 return dao.add(s);15 }1617 @Override18 public int delete(String studentId) throws SQLException {19 return dao.delete(studentId);20 }2122 @Override23 public int update(Student s) throws SQLException {24 return dao.update(s);25 }2627 @Override28 public List<Student> searchAll() throws SQLException {29 // TODO Auto-generated method stub30 return null;31 }3233 @Override34 public List<Student> search(String id, String name, String classname) throws SQLException {35 return dao.search(id, name, classname);36 }3738 @Override39 public Student findStudentById(String studentId) throws SQLException {40 return dao.findStudentById(studentId);41 }42 }//TeacherService.java1 import java.sql.SQLException;2 import java.util.List;34 import dao.TeacherDao;5 import dao.TeacherDaoImpl;6 import entity.Teacher;78 public class TeacherService implements TeacherDao{910 private TeacherDao dao=new TeacherDaoImpl();11 @Override12 public int add(Teacher t) throws SQLException {13 return dao.add(t);14 }1516 @Override17 public int delete(String teacherId) throws SQLException {18 return dao.delete(teacherId);19 }2021 @Override22 public int update(Teacher t) throws SQLException {23 return dao.update(t);24 }2526 @Override27 public List<Teacher> search(String id, String name, String password, String String age) throws SQLException {28 return dao.search(id, name, password, sex, age);29 }3031 @Override32 public List<Teacher> searchAll() throws SQLException {3334 return dao.searchAll();35 }3637 @Override38 public Teacher findTeacherById(String teacherId) throws SQLException {3940 return dao.findTeacherById(teacherId);41 }42 }4、创建一张院系表department,它有两个字段:id(int),name(varchar),分别表示院系id和院系的名称,id作为主键设为自动增长。
清华大学_JAVA语言与面向对象程序设计_试卷及其答案
清华大学_JAVA语言与面向对象程序设计_试卷及其答案清华大学《JA V A语言与面向对象程序设计》一、单选择题(每小题2分,共30分)1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。
(A).java (B).class (C).html (D).exe2、已知表达式int m[] = {0, 1, 2, 3, 4, 5, 6 };下面哪个表达式的值与数组元素个数相等?( )。
(A) m.length() (B) m.length (C) m.length()+1 (D) m.length+13、在Java Applet程序用户自定义的Applet子类中,一般需要覆盖父类的( )方法来完成一些画图操作。
(A)start( ) (B)stop( ) (C) init( ) (D) paint( )4、如下哪个字符串是Java中的标识符?( )。
(A) fieldname (B) super (C) 3number (D) #number5、关于被私有访问控制符private修饰的成员变量,以下说法正确的是()(A)可被三种类引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类(B)可以被两种类访问和引用:该类本身、该类的所有子类(C)只能被该类自身所访问和修改(D)只能被同一个包中的类访问6、Java中main()函数的值是什么类型?()(A) String (B) int (C) char (D) void7、执行完代码int [ ] x = new int[25];后,以下哪项说明是正确的()(A)x[24]为0 (B)x[24]未定义(C)x[25]为0 (D)x[0]为空8、以下代码段执行后的输出结果为()int x=3;int y=10;System.out.println(y%x);(A)0 (B)1 (C)2 (D)3public class Test{long a[] = new long[10];public static void main ( String arg[] ) {System.out.println ( a[6] );}}请问下面哪个语句是正确的()(A) Output is null.(B) Output is 0.(C) When compile, some error will occur.(D) When running, some error will occur.10、给出下面的代码段:public class Base{int w, x, y ,z;public Base(int a,int b){x=a; y=b;}public Base(int a, int b, int c, int d){// assignment x=a, y=bw=d;z=c;}}在代码说明// assignment x=a, y=b处写入如下哪个代码是正确的?()(A) Base(a,b); (B) x=a, y=b; (C) super(a,b); (D) this(a,b);class Test{private int m;public static void fun() {// some code...}}如何使成员变量m 被函数fun()直接访问()(A)将private int m 改为protected int m (B)将private int m 改为public int m(C)将private int m 改为static int m (D)将private int m 改为int m12、下面哪个函数是public void example(){...}的重载函数()(A)public double example2(int m){...} 4(B)public int example(){...}(C)public void example2(){...} (D)public int example ( int m, float f){...}13、以命令”java MyTest a b c”执行文件MyTest.class后,表达式()为真(A)args[0] = "MyT est a b c" (B)args[0] = "MyTest"(C)args[0] = "a" (D)args[1]= 'b'14、当包含applet 的页面被重新加载时会自动调用以下哪个函数?()(A) init() (B) start() (C) stop() (D) destroy()15、在编写Java Applet程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上( )语句(A)import java.awt.*;(B)import java.applet.* ;(C) i mport java.io.* ;(D) import java.awt.event.* ;二、判断题(每小题2分,共20分)1、Java的字符类型采用的是ASCII编码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
习题解答-Java面向对象程序设计-邢国波-清
华大学出版社
Java是一门流行的编程语言,具有面向对象的特点,广泛应用于各种软件开发领域。
本文将根据《Java面向对象程序设计》一书中的习题,对一些常见问题进行解答和讨论。
一、继承和多态
1. 什么是继承?
继承是一种面向对象的编程概念,它允许一个类(子类)继承另一个类(父类)的属性和方法。
通过继承,子类可以重用父类的代码,并且可以在其基础上添加新的功能。
2. 继承的优点是什么?
继承的主要优点在于代码重用和扩展性。
子类可以继承父类的成员变量和方法,避免了重复编写相同的代码。
同时,通过添加新的方法和属性,子类可以在父类的基础上实现更多的功能。
3. 什么是多态?
多态是指一个对象可以根据当前上下文使用不同的方式呈现不同的行为。
在Java中,多态通过继承和接口实现。
具体表现为同一个方法可以在不同的子类中有不同的实现。
4. 请解释一下重写(Override)和重载(Overload)的区别。
重写是在子类中实现一个和父类方法签名相同的方法,从而改变父
类方法的实现逻辑。
重载是指在一个类中定义多个同名方法,但参数
类型和个数不同的情况。
5. 请举例说明多态的应用场景。
一个典型的例子是在一个图形绘制程序中,可以有多种类型的图形,如圆形、矩形、三角形等。
通过定义一个统一的父类图形,每个具体
图形实现自己的绘制方法,程序可以以统一的方式调用绘制方法,根
据具体图形的类型进行不同的绘制。
二、封装和抽象
1. 什么是封装?
封装是将数据和操作数据的方法打包在一起,形成一个类。
通过封装,可以隐藏实现细节,提高代码的安全性和可维护性。
2. 请解释一下Java中的访问修饰符。
Java中有四种访问修饰符:public、private、protected和默认(无修
饰符)。
public表示公开访问,可以在任何地方访问;private表示私有
访问,只能在当前类中访问;protected表示受保护访问,可以在当前类、同包类和子类中访问;默认表示包内访问,可以在当前包中的其
他类中访问。
3. 什么是抽象类和接口?
抽象类是不能被实例化的类,只能作为其他类的基类。
它可以包含
抽象方法和实现方法。
接口是一种规范,定义了类需要遵循的一组方法。
一个类可以实现多个接口,从而达到多继承的效果。
4. 请解释一下Java中的final关键字。
final关键字可以用来修饰类、方法和变量。
修饰类时,表示该类不
能再被继承;修饰方法时,表示该方法不能被重写;修饰变量时,表
示该变量是一个常量,值不能被修改。
5. 请解释一下抽象类和接口的区别。
抽象类可以有字段、构造函数和非抽象方法的实现,而接口只能有
常量和抽象方法。
一个类只能继承一个抽象类,但可以实现多个接口。
三、异常处理
1. 什么是异常处理?
异常处理是一种处理程序中可能出现的错误或异常情况的方式。
通
过使用try-catch语句块,可以捕获并处理异常,从而使程序具有鲁棒性。
2. 请解释一下Java中的异常分类。
Java中的异常分为两种:Checked Exception(编译时异常)和Unchecked Exception(运行时异常)。
Checked Exception需要在代码中明确处理或声明抛出,否则编译会报错;而Unchecked Exception不需
要强制处理或声明。
3. 请解释一下try-catch-finally语句块的作用。
try-catch-finally语句块用于捕获并处理异常。
在try块中编写可能会抛出异常的代码,如果异常发生,会跳转至对应的catch块进行处理。
无论是否发生异常,finally块始终会执行,用于执行一些清理操作。
4. 请解释一下throws关键字的作用。
throws关键字用于在方法声明中标明该方法可能抛出的异常类型。
当方法中的代码可能会抛出异常时,可以使用throws关键字将异常传
递给调用者处理。
5. 请举一个常见的异常处理的场景。
一个常见的异常处理场景是在读取文件时可能发生IO异常。
通过
使用try-catch语句块,可以捕获该异常,并进行相应的处理,如关闭
文件流、提示用户等。
结论
本文对Java面向对象程序设计中的继承和多态、封装和抽象以及异常处理等内容进行了解答和讨论。
通过对这些重要概念的理解和实践,可以帮助读者更好地掌握Java编程的核心思想和技巧。
当然,要真正
掌握Java面向对象程序设计,还需要不断的学习和实践。