admin 管理员组文章数量: 1184232
2024年1月10日发(作者:接口测试百度百科)
实验7
1. 编一个程序,包含以下文件。
(1)文件,在该文件中定义接口Shape,该接口在shape包中。
属性:PI。
方法:求面积的方法area()。
(2)文件,在该文件中定义圆类Circle,该类在circle包中,实现Shape接口。
属性:圆半径radius。
方法:构造方法;实现接口中求面积方法area();求周长方法perimeter()。
(3)“”文件,在该文件中定义圆柱体类Cylinder,该类口在cylinder包中,继承圆类。
属性:圆柱体高度height。
方法:构造方法;求表面积方法area();求体积方法volume()。
(4)文件,在该文件中定义主类X5_3_6,该类在默认包中,其中包含主方法main(),在主方法中创建两个圆类对象cir1和cir2,具体尺寸自己确定,并显示圆的面积和周长;再创建两个圆柱体类的对象cy1和cy2,具体尺寸自己确定,然后分别显示圆柱体cy1和cy2的底圆的面积和周长以及它们各自的体积和表面积。
【编程分析】本题主要考察接口、包、继承、封装等问题。编程步骤如下:
第一步:首先创建p1包,在其中创建Shape接口
;
public class Circle implements Shape{ ;
public class X5_3_6 { ;
public class X5_3_6 { ;
public class Circle implements Shape{ ;
public class X7_3_2 {
public static void main(String[] args)throws IOException{
InputStreamReader isr = new InputStreamReader;
BufferedReader br = new BufferedReader(isr);
int[] a = new int[5];
int n = ());
if(n>5) ;
public class X7_3_3 {
public static void main(String args[]) throws IOException{
InputStreamReader isr = new InputStreamReader;
BufferedReader br = new BufferedReader(isr);
"请输入两个整数:");
int a = ( ());
int b = ( ());
try{ ;
public class X7_3_4 {
public static void main(String args[]) throws IOException{
InputStreamReader isr = new InputStreamReader;
BufferedReader br = new BufferedReader(isr);
"请输入两个整数:");
int a = ( ());
int b = ( ());
try{
if(b==0)
throw new ArithmeticException("抛出算术异常");
}
catch(ArithmeticException e){
();
"出现被0除的情况!");
}
int c[] ={1, 2, 3, 4}, sum = 0;
try{
for(int i = 0; i<5; i++) {
if(i >= 4)
throw new ArrayIndexOutOfBoundsException("抛出数组下标越界异常");
sum += c[i];
" sum = " + sum);
}
}
catch(ArrayIndexOutOfBoundsException e){
();
"数组下标越界!");
}
}
}
5.自定义两个异常类NumberTooBigException和NumberTooSmallException,在其中定义各自的构造方法,分别打印输出“发生数字太大异常”和“发生数字太小异常”。然后在主类中定义一个带throws的方法numberException(int x),当x>100时通过throw抛出NumberTooBigException异常,当x<0时通过throw抛出NumberTooSmallException异常;最后在main()方法中调用该方法,实现从键盘中输入一个整数,如果输入的是负数,引发NumberTooSmallException异常,如果输入的数大于100,引发。NumberTooBigException异常,否则输出“没有发生异常”。
【编程分析】本题主要考察自定义异常的方法。
第一步:定义异常类NumberTooBigException
class NumberTooBigException extends Exception{
NumberTooBigException(){
super("发生数字太大异常 ");
}
}
第二步:定义异常类NumberTooSmallException
class NumberTooSmallException extends Exception{
NumberTooSmallException(){
super("发生数字太小异常");
}
}
第三步:在主类X7_3_5中定义numberException()方法。
public static void numberException(int x)
throws NumberTooBigException, NumberTooSmallException{
if(x>100)
throw new NumberTooBigException();
else if (x<0)
throw new NumberTooSmallException();
else
"没有异常发生") ;
}
第四步:在main()方法中调用numberException()方法并捕捉和处理由此方法引起的异常。
【参考程序】
import .*;
public class X7_3_5 {
public static void main(String args[]) throws IOException{
InputStreamReader isr = new InputStreamReader;
BufferedReader br = new BufferedReader(isr);
"请输入一个整数:");
int a = ( ());
try{
numberException(a);
}catch(NumberTooBigException e){
();
}catch(NumberTooSmallException e){
();
}
}
public static void numberException(int x) throws NumberTooBigException,
NumberTooSmallException{
if(x>100)
throw new NumberTooBigException();
else if (x<0)
throw new NumberTooSmallException();
else
"没有异常发生") ;
}
}
class NumberTooBigException extends Exception{
NumberTooBigException(){
super("发生数字太大异常 ");
}
}
class NumberTooSmallException extends Exception{
NumberTooSmallException(){
super("发生数字太小异常");
}
}
实验9
一、选择题
1.下列说法中错误的一项是( B )。
A.构件是一个可视化的能与用户在屏幕上交互的对象
B.构件能够独立显示出来
C.构件必须放在某个容器中才能正确显示
D.一个按钮可以是一个构件
【解析】构件不能独立显示,它必须放在某个容器中才能正确显示。
2.进行Java基本GUI设计需要用到的包是( C )。
A. B. C. D.
【解析】进行Java基本GUI设计需要用到的包是和
3.Container是下列哪一个类的子类( D )?
A.Graphics B.Window C.Applet D.Component
【解析】Container类是由Component类派生的。
4.的父类是( B )。
A. B. Window
C. Panel D.【解析】的父类 Window。
5.下列哪个方法可以将MenuBar加入Frame中( D )?
A.setMenu() B.addMenuBar() C.add() D.setMenuBar()
【解析】可以将MenuBar加入Frame中的方法是setMenuBar()。
6.下列叙述中,错误的一项是( D )。
A.采用GridLayout布局,容器中的每个构件平均分配容器空间
B.采用GridLayout布局,容器中的每个构件形成一个网络状的布局
C.采用GridLayout布局,容器中的构件按照从左到右、从上到下的顺序排列
D.采用GridLayout布局,容器大小改变时,每个构件不再平均分配容器空间
【解析】采用GridLayout布局,容器大小改变时,每个构件平均分配容器空间。
7.当单击鼠标或拖动鼠标时,触发的事件是( D )。
A.KeyEvent B.ActionEvent C.ItemEvent D.MouseEvent
【解析】对鼠标操作,触发的事件是MouseEvent事件。
8.下列哪一项不属于Swing的顶层组件( C )?
A.JApplet B.JDialog C.JTree D.Jframe
【解析】JTree 只有在容器中才能显示,它不属于swing的顶层组件。
9.下列说法中错误的一项是( D )。
A.在实际编程中,一般使用的是Component类的子类
B.在实际编程中,一般使用的是Container类的子类
C.Container类是Component类的子类
D.容器中可以放置构件,但是不能够放置容器
【解析】容器中既可以放置构件,也可以放置容器。
10.下列哪一项不属于AWT布局管理器( D )?
A.GridLayout B.CardLayout C.BorderLayout D.BoxLayout
【解析】BoxLayout属于swing布局管理器,不属于AWT布局管理器。
11.下列说法中错误的一项是( A )。
A.MouseAdapter是鼠标运动适配器 B.WindowAdapter是窗口适配器
C.ContainerAdapter是容器适配器 D.KeyAdapter是键盘适配器
【解析】MouseAdapter是鼠标适配器,而MouseMotionAdapte才是鼠标运动适配器。
12.布局管理器可以管理构件的哪个属性( A )?
A.大小 B.颜色 C.名称 D.字体
【解析】布局管理器可以管理构件的位置和大小,而不能管理构件的其他属性。
13.编写AWT图形用户界面的时候,一定要import的语句是( B )。
A.import ; B.import .*;
C.import D.import .*;
【解析】“import .*;”语句的含义是加载awt包中的所有类,而其他都不是。
14.在类中若要处理ActionEvent事件,则该类需要实现的接口是( B )。
A.Runnable B.ActionListener C.Serializable D.Event
【解析】处理ActionEvent事件的类需要实现的接口是ActionListener,它其中包含了actionPerformed()方法。
15.下列不属于包中的基本概念的一项是( C )。
A.容器 B.构件 C.线程 D.布局管理器
【解析】线程不属于包中的基本概念的一项,其他三个都是。
16.下列关于AWT构件的说法中错误的一项是( D )。
A.Frame是顶级窗口,它无法直接监听键盘输入事件
B.对话框需要依赖于其他窗口而存在
C.菜单只能被添加到菜单栏中
D.可以将菜单添加到任意容器的某处
【解析】菜单只能添加到Applet、Frame等容器中,不能添加到任意容器的某处。
17.JPanel的默认布局管理器是( C )。
A.BorderLayout B.GridLayout C.FlowLayout D.CardLayout
【解析】Panel、JPanel和Applet的默认布局管理器都是FlowLayout。
18.下列说法中错误的是( B )。
A.在Windows系统下,Frame窗口是有标题、边框的
B.Frame的对象实例化后,没有大小,但是可以看到
C.通过调用Frame的setSize()方法来设定窗口的大小
D.通过调用Frame的setVisible(true)方法来设置窗口为可见
【解析】Frame的对象实例化后,没有大小,也不能看到,只有通过调用Frame的setSize()和setVisible(true)方法才能设定窗口的大小和可见性。
19.下列说法中错误的是( D )。
A.同一个对象可以监听一个事件源上多个不同的事件
B.一个类可以实现多个监听器接口
C.一个类中可以同时出现事件源和事件处理者
D.一个类只能实现一个监听器接口
【解析】一个类可以实现多个监听器接口,从而实现对多个事件的监听。
20.下列选项中不属于容器的一项是( )。
A.Window B.Panel C.FlowLayout
【解析】FlowLayout类属于布局管理器,而不属于容器。
二、编程题
D.ScrollPane
1.创建一个Frame类型窗口,在窗口中添加2个不同颜色的Panel面板,每个面板中添加2个按钮构件。
【编程分析】本程序主要考察窗口、面板以及按钮的创建及布局问题。
第一步:首先定义一个主类,让该类继承Frame类。
第二步:定义该类的数据成员,包括两个Panel对象,一个长度为4的Button对象数组。
第三步:创建类的工作方法,在方法中创建各个对象、设置对象属性、布局整个界面、设置窗口大小并显示界面。
第四步:在类的main()方法中创建本类对象,从而显示整个窗口界面。
【参考程序】
import .*;
import .*;
public class X10_3_1 extends Frame{
Panel pn1,pn2; ;
import .*;
public class X10_3_2 extends Frame{
Panel pn1,pn2; ,"+","="}};
public static void main(String[] args)throws IOException{
new X10_3_2();
}
public X10_3_2(){
pn1 = new Panel(); ;
import class X10_3_3 { ;
import class X10_3_4 { // 定义主类
public static void main(String[] args) {
new MouseKeyFrame();
}
}
class MouseKeyFrame extends Frame { // 定义创建窗口、处理鼠标和键盘事件的类
Panel pn;
TextField tf1, tf2;
KeyHandler kh;
MouseKeyFrame(){
pn = new Panel(new BorderLayout() );
tf1 = new TextField(30);
tf2 = new TextField(30);
kh = new KeyHandler(new Dimension(200,80), );
(kh, ;
(tf2, ;
(tf1, ;
(pn, ;
(new MouseHandler() );
(new MouseHandler() );
(new WindowAdapter(){ // 关闭窗口事件处理
public void windowClosing(WindowEvent e){
(0);
}
} );
(400, 300);
(true);
}
class MouseHandler implements MouseListener, MouseMotionListener{
// 处理鼠标事件内部类
// 以下5个方法是实现MouseListener接口中的方法
public void mouseEntered(MouseEvent e){
("Mouse entered the frame!");
}
public void mouseExited(MouseEvent e){
("Mouse exited the frame!");
}
public void mousePressed(MouseEvent e){
("Mouse pressed in the frame!");
}
public void mouseReleased(MouseEvent e){
("Mouse released in the frame!");
}
public void mouseClicked(MouseEvent e){
("Mouse clicked in the frame!");
}
// 以下2个方法是实现MouseMotionListener接口中的方法
public void mouseMoved(MouseEvent e){法
("Mouse moved in the frame!");
}
public void mouseDragged(MouseEvent e){
("Mouse dragged in the frame!");
}
}
class KeyHandler extends Canvas implements KeyListener{// 处理键盘事件内部类
StringBuffer sb ;
KeyHandler(Dimension d, Color c){
sb = new StringBuffer();
(d);
(c);
(this);
}
}
}
public void keyPressed(KeyEvent e){ }
public void keyReleased(KeyEvent e){ }
public void keyTyped(KeyEvent e){
("" + ()) );
repaint();
}
public void paint(Graphics g){
("" + sb, 10, 20);
}
【运行结果】当鼠标进入窗口(上面白色区域)时,将在上面的文本框中显示鼠标动作,当用鼠标点击画布(下面有色区域)使画布获得焦点后,即可以用键盘输入数据,输入的数据在画布和下面的文本框中同时显示。如下图:
版权声明:本文标题:JAVA实验7-9+答案 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1704843188a463975.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论