《Java面向对象编程》练习题 下载本文

专题7 异常处理 一. 填空题

1.一个try语句块后必须跟( )语句块,( )语句块可以没有 2.自定义异常类必须继承( )类及其子类

3.异常处理机制允许根据具体的情况选择在何处处理异常,可以在( )捕获并处理,也可以用throws子句把他交给( )处理

二.选择题

1. finally语句块中的代码( ) A.总是被执行

B.当try语句块后面没有catch时,finally中的代码才会执行 C.异常发生时才执行

D.异常没有发生时才被执行

2. 抛出异常应该使用的关键字是( ) A.throw B.catch C.finally

D.throws

3. 自定义异常类时,可以继承的类是( ) A.Error B.Applet

C.Exception及其子类

D.AssertionError

4. 在异常处理中,将可能抛出异常的方法放在( )语句块中 A.throws B.catch C.try

D.finally

5. 对于try{??}catch子句的排列方式,下列正确的一项是( ) A.子类异常在前,父类异常在后 B.父类异常在前,子类异常在后 C.只能有子类异常

D.父类异常与子类异常不能同时出现

6. 使用catch(Exception e)的好处是( ) A.只会捕获个别类型的异常

B.捕获try语句块中产生的所有类型的异常 C.忽略一些异常 D.执行一些程序

三.简答题

1.try/catch/finally如何使用?

2.Throw/throws有什么联系和区别? 3.如何自定义异常类?

4.谈谈final、finally的区别和作用 5.如果try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行?

6.Error和Exception有什么区别?(重要)

7.什么是RuntimeException?列举至少4个RuntimeException的子类

四.编程题

1.编写程序,要求输入若干整数,输入的同时计算前面输入各数的乘积,若乘积超过100000,则认为是异常,捕获并处理这个异常,输出信息。

2.编写一个登录界面,要求帐户名只能由1至10位数字组成,密码只能有6位,任何不符合帐户名和密码要求的情况都视为异常,必须捕获并处理异常

3.设计自己的异常类表示对负数求平方根的错误;在类Test的主方法中,从键盘输入一个数,若输入的数不小于0,则输出它的平方根;若小于0,则抛出自定义异常;在程序中处理异常并输出提示信息“输入错误,不能对负数求平方根”

专题8 多线程 一、填空题

1.Java语言实现多线程的方法有两种,它们是( )和( ) 2.线程有5种状态,它们是( )、( )、( )、( )和( ) 3.在java中,线程同步是通过( )关键字实现的 4.新创建的线程默认的优先级是( )

5.当一个线程睡眠时,sleep()方法不消耗( )时间

二.选择题

1. 一个Java程序运行后,在系统中这个程序便可以作为一个( ) A.线程 B.进程 C.进程或线程 D.不可预知 2. 设已经编好了一个线程类MyThread,要在main()中启动该线程,需使用以下哪个

方法( ) A.new MyThread

B.MyThread myThread=new MyThread(); myThread.start(); C.MyThread myThread=new MyThread(); myThread.run(); D.new MyThread.start();

3. 以下哪个方法不能使线程进入阻塞状态( ) A.sleep() B.wait() C.suspend() D.stop() 4. 可以使用( )方法设置线程的优先级

A.getPriority() B.setPriority() C.yield() D.wait() 5. 线程是Java的( )机制

A.检查 B.解释执行 C.并行 D.并发 6. 以下方法用于定义线程执行体的是( ) A.start() B.init() C.run() D.main()

7. 一个线程如果调用了sleep()方法,能唤醒它的方法是( ) A.notify() B.resume() C.run() D.以上都不是

三、编程题

1.设计四个线程对象对同一个数据进行操作,两个线程执行减操作,两个线程执行加操作

2.制作两个线程对象,要求用同步块的方式使第一个线程运行2次,然后将自己阻塞起来,唤醒第二个线程,第二个线程再运行2次,然后将自己阻塞起来,唤醒第一个线程??两个线程交替执行。

专题9 图形用户界面编程 一.填空题

1. AWT的组件库被更稳定、通用、灵活的库取代,该库称为( ) 2. ( )用于安排容器上的GUI组件

3. 设置容器的布局管理器的方法是( )

4. 当释放鼠标按键时,将产生( )事件

5. Java为那些声明了多个方法的Listener接口提供了一个对应的( ),在该类中

实现了对应接口的所有方法 6. ActionEvent事件的监听器接口是( ),注册该时间监听器的方法名是( ),

事件处理方法名是( )

7. 图形用户界面通过( )相应用户和程序的交互,产生事件的组件称为( ) 8. Java的Swing包中定义菜单的类是( ) 9. 向容器内添加组件使用( )方法

10. 对话框有两种类型,分别是( )和( ) 11. 工具栏一般放在窗口的( )位置

12. 若要使表格具有滚动条,需要将表格添加到( )组件中。 13. paint() 方法的参数是( )类的实例

14. drawRect(int x1,int y1,int x2,int y2)中,x2和y2分别代表矩形的(

二.选择题

1. 窗口JFrame使用( )方法可以将jMenuBar对象设置为主菜单 A.setHelpMenu(jMenuBar) B.add(jMenuBar) C.setJMenuBar(jMenuBar)

D.setMenu(jMenuBar) 2. 下面属于容器类的是( ) A.Color类

B.JMenu类 C.JFrame类

D.JTextField类 3. 使用( )类创建菜单对象 A.Dimension

B.JMemu

C.JMenuItem D.JTextArea 4. 使用( )方法创建菜单中的分隔条 A.setEditable B.ChangeListener C.add D.addSeparator 5. JPanel和JApplet的默认布局管理器是( ) A.CardLayout B.FlowLayout C.BorderLayout

D.GridLayout 6. JFrame的默认布局管理器是( ) A.CardLayout

B.FlowLayout

C.BorderLayout D.GridLayout

7. 按钮可以产生ActionEvent事件,实现哪个接口可以处理此事件( A.FocusListener B.ComponentListener C.ActionListener D.WindowListener 8. 容器使用( )方法将组件添加到容器 A.addComponent() B.add()

) )和(