学通Java的24堂课_羊皮卷_课后答案

更新时间:2023-05-23 01:01:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

附录 自我测试参考答案

第1堂课 Java概述

一、选择题答案与解析

1.D

2.B

解析:本题考察的重点是Java应用程序中main()方法的定义。main()方法是普通Java应用程序的入口,该方法的完整格式如下:

public static void main(String[] args)

题目中虽然也定义了一个main()方法,但是它没有参数。因此不能作为程序的入口,也就是不能执行 程序。

3.D

4.B

5.B

二、填空题答案与解析

1.java

2.运行

3..class

4.PATH和JAVA_HOME

5.;(分号)

第2堂课 使用IDE集成开发工具

一、选择题答案与解析

1.B

2.B

3.A

4.B

5.B

二、填空题答案与解析

1.WindowBuilder

2.包资源管理器

3.透视图

4.工作空间

5.调试

第3堂课 Java语言基础知识

一、选择题答案与解析

1.C和E

2.F和G

3.D

4.A

解析:本题考察的重点是基本数据类型的取值范围,888已经超出byte字节类型的取值范围,所以程序编译时会提示错误。如果将888强制类型转换为byte类型,将输出120。

5.D

解析:本体考察的是变量的有效作用范围,全局变量(又称成员变量)num赋值为45,但是在main()方法中又定义了局部变量num,所以在main()方法中局部变量num将覆盖成员变量num,如果要在该方法中使用成员变量,应该使用this.num进行引用。

二、填空题答案与解析

1.16

2.否

3.10

解析:本题考察的重点是变量的后缀自增运算符,在输出语句中直接引用了这个表达式,而后缀自增运算符是先把变量值返回给调用者,然后在对变量值自增,所以输出语句获取的是变量自增前的值。

4.取余数

5.boolean

第4堂课 流程控制语句

一、选择题答案与解析

1.B和E

解析:本题考察的重点是switch语句。在case子句中,没有能和字符c匹配的子句,因此调用了default语句。该语句没有任何输出,并且没有break关键字,因此执行了case ‘a’子句,所以输出了a。而该子句有break,所以退出了switch语句。

2.B和D

解析:本题考察的重点是do…while循环。do…while循环的循环体首先被执行一次,然后测试是否满

2

足继续执行的条件。由于--运算符的优先级高于>,所以循环条件并不满足。

3.D

解析:本题考察的重点是if…else嵌套结构。如果x > 0,输出的是First;如果x <= -3,输出的是Third;其他的x值输出的是Second。

4.C

解析:本题考察的重点是条件语句。表达式flag = true实际上是一个赋值语句而非判断语句,因此条件为真,输出true。

5.C

解析:本题考察的重点是for循环语句。由于i的值和total的值都是0,不存在大于关系,因此for循环中的语句并未执行,直接输出的total值。

二、填空题答案与解析

1.break

2.continue

3.3

4.双

5.复合

第5堂课 数 组 应 用

一、选择题答案与解析

1.A

解析:本题考察的重点是数组元素初始化。程序员可以在初始化数组时指明数组中的全部元素,但是不能通过使用两个连续的“,”将中间位置的元素赋值成默认值。

2.A

解析:本题考察的重点是数组大小的指定。Java语言规定指定数组大小是使用的数据类型只能是char、byte、short和int,而不能是long。

3.A、B、E和F

4.B

解析:本题考察的重点是数组元素的访问。数组中元素可以通过与该元素对应的下标进行访问。下标编号从0开始,到数组长度减一。因此array[5]实际上访问的是数组中的第6个元素,而数组中只有5个元素,所以在运行时出现异常。

5.A

解析:本题考察的重点是数组的length属性。数组的长度可以在创建时指定,但是指定之后就不能够再修改了。本实例中代码试图修改数组的长度,因此引发编译错误。

二、填空题答案与解析

1.是

2.length

3

3.String

4.正确

5.不是

第6堂课 面向对象编程

一、选择题答案与解析

1.A

2.D

解析:本题考察的重点是外部类。外部类只有两种访问权限,即公有(使用public修饰)和默认(无修饰符)。对于内部类,是可以使用private修饰的。

3.D

解析:本题考察的重点是包的应用。Java中使用包来避免命名冲突的问题,这类似于在系统中建立多个文件夹来保存文件。如果不使用导入声明,而子类和父类又在不同的包中,就会出现编译错误。

4.C

解析:本题考察的重点是对象之间的比较。如果想比较对象的内容是否相等,不能使用“==”,它比较的是对象的内存地址。如果已经重写了equals()方法,如String类,则可以使用该方法来比较对象的内容是否相等。

5.A

解析:本题考察的重点是静态方法对变量的访问。在静态方法中只能访问静态变量。本题中main()方法是静态的,但是name是非静态的,所以出现编译错误。

二、填空题答案与解析

1.int

解析:本题考察的是重点是构造方法的调用。当给构造方法传递整型参数时,默认调用int类型参数的构造方法。如果需要调用byte类型,则需要进行强制类型转换。

2.this()

解析:本题考察的重点是构造方法的调用。调用本类的构造方法时,可以使用this关键字,题目中又要求是无参数的,因此是this()。

3.null

解析:本题考察的重点是构造方法。构造方法的名称必须与类名相同而且没有返回值。在本实例中,Test()方法由于指定了void返回类型,所以不是构造方法,因此字符串text并没有被初始化。

4.int:12

解析:本题考察的重点是方法的重载。Base类定义了同名的两个say()方法,但是它们分别接收int与long类型的变量。当main()方法中调用say()方法时传递了int类型的数字,所以调用了第一个方法;如果在数值后面添加字母L会使整数变为长整数,这时就会调用第二个方法。

5.能

解析:本题考察的重点是方法的重写。虽然代码中有两个main()方法,但是方法的参数并不相同,一个

4

使用的是int类型数组,一个使用的是String类型数组。

第7堂课 字符串处理

一、选择题答案与解析

1.B

2.C

解析:本题考察的重点是空字符串的应用。字符串在与其他类型做加法运算时,其他类型会自动转换成字符串类型。因此“” + 2 + 3等价于“” + “2” + “3”,所得结果是23。

3.C和D

解析:本题考察的重点是包的应用。Java中使用包来避免命名冲突的问题,这类似于在系统中建立多个文件夹来保存文件。如果不使用导入声明,而子类和父类又在不同的包,就会出现编译错误。

4.D

解析:本题考察的重点是String类的定义。字符串是不可变的,虽然通过方法可以在表面上对其修改,实际上是创建了一个新字符串,原来的值并未改变。

5.D

解析:本题考察的重点是字符串的理解。字符串的下标索引与数组一样,都是从0开始的,字符串的长度-1才是其最后一个字符的索引。

二、填空题答案与解析

1.equalsIgnoreCase()

2.MingRi Soft

解析:本题考察的重点是运算的优先级。text2调用replace()方法的运算级别高于字符串连接操作,而不是两个字符串连接之后在执行replace()方法。

3.所有非数字的字符串

4.追加字符串到StringBuilder类的对象中

5.matches()方法

第8堂课 类的继承与多态特性

一、选择题答案与解析

1.C

解析:本题考察的重点是抽象类的定义。Java中的抽象类是通过在class关键字前增加abstract关键字实现的。如果类中有抽象方法,则这个类必须是抽象的。如果类是抽象的,则可以不包含抽象方法。

2.A和D

解析:本题考察的重点是向上转型。题目中要求方法的参数能够同时支持Person、Student和Teacher,因此可以将参数类型设置成Person。另外,也可以将类型设置成Object类型,它是所有Java类的父类。

5

3.D

解析:本题考察的重点是private关键字。使用private关键字修饰方法表示该方法对于其他类是不可见的,因此子类Over并没有重写父类中的方法say(),两个类中的say()方法仅仅是同名而已,没有任何关系。

4.C

5.B

二、填空题答案与解析

1.abstract

2.Object

3.hashCode()

4.substring(6)

5.instanceof

第9堂课 其他类特性与异常处理

一、选择题答案与解析

1.C

2.A

解析:本题考察的重点是final变量。final变量不能由编译器进行初始化,需要程序员手动赋值。通常在构造方法、块或创建final变量时进行赋值。

3.B、C和D

解析:本题考察的重点是异常的捕获。当发生IOException时,退出了try块,开始执行catch块,因此输出了Location 2。由于finally块是必须执行的代码块,因此输出了Location 3。程序继续运行而输出了Location 4。

4.D

解析:本题考察的重点是try…catch…finally捕获异常结构。本题中,try块没有出现异常,因此catch块没有机会执行。而finally块会执行,所以输出了Finally。

5.C

解析:本题考察的重点是内部类的使用。对于内部类,和类的其他成员是类似的。如果非静态内部类,则需要使用外部类对象才能访问。本实例中,可以使用以下语句创建内部类的对象:

Test test = new Test();

Test.B b = test.new B();

二、填空题答案与解析

1.throws

2.否

3.可以

4.错误

5.不可以

6

第10堂课 Swing编程基础

一、选择题答案与解析

1.A、B和C

解析:本题考察的重点是Swing中的窗体。Swing的控件需要放置在窗体中进行显示。窗体包括JFrame、JDialog和JApplet 3种。

2.B、C和D

解析:本题考察的重点是Swing中的布局管理器。对于选项A,它并不是Swing中定义的布局管理器。是需要使用setLayout(null);语句就可以使用绝对布局了。

3.D

解析:本题考察的重点是JScrollPane的使用。该控件可以用来增加滚动条,通常和JTextArea、JList等控件联合使用。

4.A、B、C和D。

解析:本题考察的重点是如何为JComboBox增加选项。通常有4种方式,在创建JComboBox时,可以使用ComboBoxModel、Object数组和Vector向量。如果对已经存在的JComboBox增加选项,可以使用addItem()方法。

5.B、C和D

解析:本题考察的重点是如何为JList增加选项。通常有3种方式,在创建JList时,可以使用ListModel、Object数组和Vector向量。如果对已经存在的JList增加选项,可以使用setModel()方法。

二、填空题答案与解析

1.setVisible()

2.(0,0)

3.setEnabled()

4.setEchoChar()

5.setStringPainted()

第11堂课 多线程编程

一、选择题答案与解析

1.C和D

2.C

解析:本题考察的重点是线程的启动。本题中的4个选项都可以输出Hello World,但是只有调用start()方法才能用启动一个新的线程。

3.D

解析:本题考察的重点是线程的执行。创建线程可以通过继承Thread类或实现Runnable接口,这两种

7

方式都需要在run()方法中编写需要在新线程中运行的代码。本题并未在run()方法中编写任何代码,所以输出为空。

4.C和D

解析:本题考察的重点是线程的基本概念。选项A错误因为也可以通过实行Runnable接口创建新线程。选项B错误是因为不同的线程可以重名,需要使用ID来区分线程。

5.A和C

解析:本题考察的重点是Thread类的构造方法。Thread类可以使用Runnable接口的实现来创建新线程,而实现Runnable接口需要重写run()方法。

二、填空题答案与解析

1.start()

2.run()

3.synchronized

4.sleep()

5.getName()

第12堂课 事件处理的应用

一、选择题答案与解析

1.B

2.A

解析:本题考察的重点是适配器的使用。使用适配器可以简化编程。windowActivated()方法是在适配器中实现的,此处相当于重写该方法,因此在控制台输出了窗体激活。

3.B

解析:本题考察的重点是适配器的使用。适配器对于接口中定义的方法提供了空实现。因此,重写适配器方法需要注意方法的签名是否相同。本题中WindowActivated()方法的首字母大写了,因此相当于创建了一个新的方法,控制台上无输出。

4.C

5.A

二、填空题答案与解析

1.void

2.7

3.VK_ENTER

4.Cursor

5.EventObject

8

第13堂课 常用工具类

一、选择题答案与解析

1.C和D

2.B

解析:本题考察的重点是Math类中方法的使用。max()方法和min()方法的参数都是两个,返回两者中的最大值和最小值。ceil()方法用于获得大于a的最小整数,floor()方法用于获得小于a的最大整数。

3.A

解析:本题考察的重点是Math类的构造方法。Math类的构造方法是私有的,因此不能创建Math类的对象,如果需要使用其方法,直接用类名调用即可,因为该类的所有方法都是静态的。

4.A

5.C

二、填空题答案与解析

1.22

解析:本题考察的重点是自动拆箱机制。在Java SE 5.0版之后,支持自动装箱与自动拆箱机制,它们可以方便对象与基本类型之间的转换。本题中在做加法运算时,number被自动拆箱成整数10,因此运算结果是22。

2.否

3.[0,1]

4.一位数字,如果该位不存在数字,则不显示。

5.当前的年

解析:本题考察的重点是常见的日期时间转换符。%tY表示的是当前的年。这些转换符对于在控制台上输出非常有用。

第14堂课 常用集合类

一、选择题答案与解析

1.A、B和C

2.A

3.B

4.B和C

5.B

解析:本题考察的重点是ArrayList的初始化。当创建ArrayList对象后,其中并没有添加任何元素。因此使用Iterator的next()方法时会抛出java.util.NoSuchElementException异常。

二、填空题答案与解析

1.Set接口

9

2.否

3.keySet()

4.null

5.Stack

第15堂课 数据库编程应用

一、选择题答案与解析

1.A、B、C和D

2.A

3.A和B

解析:本题考察的重点是JDBC中常见异常的类型。选项A是在加载驱动时抛出的,选择B是获得连接时抛出的,选项C和B不存在。

4.C

5.A和B

二、填空题答案与解析

1.3306

2.MySQL

3.java.sql

4.close()

5.接口

第16堂课 输入输出流与文件

一、选择题答案与解析

1.A

解析:本题考察的重点是文件路径分割符。在Windows系统中,使用\\来分隔路径中不同文件夹。单独的\表示转义字符,而\m并不是Java中定义的转义字符,因此发生编译错误。

2.A

3.A

4.A

解析:本题考察的重点是capacity()方法和length()方法的区别。capacity()方法用于获得当前可用容量,如果超过该值,则会再次分配,其默认值是16。length()方法用于获得StringBuilder类中实际保存的字符串长度。由于本实例并未保存任何字符串,因此其长度为0。

5.A和B

10

二、填空题答案与解析

1.否

2.不能

3.renameTo()

4.StringBuffer

5.false

第17堂课 网络程序设计

一、选择题答案与解析

1.B

2.B

3.A

4.A

5.A

二、填空题答案与解析

1.IOException,UnknownHostException

2.MalformedURLException

3.accept()

4.setSoTimeout()

5.getProtocol()

第18堂课 表格控件的应用

一、选择题答案与解析

1.B、C和D

2.D

3.D

4.A

5.A和B

二、填空题答案与解析

1.(0,0)

2.否

3.table.setModel(model);

4.getSelectedRow()

5.getSelectedRowCount()

11

第19堂课 树控件的应用

一、选择题答案与解析

1.B和C

2.A、B和C

3.A

4.A和B

5.A

二、填空题答案与解析

1.getChildCount()

2.可以

3.不是

4.depthFirstEnumeration()

5.getTreeCellRendererComponent()

第20堂课 其他高级控件

一、选择题答案与解析

1.A

2.A和B

3.A和B

4.A

5.C

二、填空题答案与解析

1.setMultiSelectionEnabled()

2.chooser.setCurrentDirectory(new File("D:/"));

3.addSeparator()

4.JMenuBar

5.setClosed()

第21堂课 图形绘制技术

一、选择题答案与解析

1.B

12

2.A、B和C

3.C

4.B

5.B和D

二、填空题答案与解析

1.new Font(“微软雅黑”, Font.BOLD, 15);

2.drawString()

3.drawImage()

4.可以

5.Graphics2D类

13

本文来源:https://www.bwwdw.com/article/5dh4.html

Top