《Java基础入门》课后习题及答案

更新时间:2024-04-09 00:22:01 阅读量: 综合文库 文档下载

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

博学谷——让IT教学更简单,让IT学习更有效

《Java基础入门》课后习题

第1章 Java开发入门

一、填空题

1、Java的三大体系分别是_JavaSE_____、_JavaEE_____、_JavaME_____。 2、Java程序的运行环境简称之为JRE_____。 3、编译Java程序需要使用_javac_____命令。

4、javac.exe和java.exe两个可执行程序存放在JDK安装目录的bin______目录下。

5、path______环境变量用来存储Java的编译和运行工具所在的路径,而_classpath_____环境变量则用来保存保存Java虚拟机要运行的“.class”文件路径。

二、选择题

1、以下选项中,哪些属于JDK工具?(多选)ABCD

A、Java编译器 B、Java运行工具 C、Java文档生成工具 D、Java打包工具 2、Java属于以下哪种语言?C

A、机器语言 B、 汇编语言 C、高级语言 D、以上都不对 3、下面哪种类型的文件可以在Java虚拟机中运行?D

A、.java B、.jre C、.exe D、.class

4、安装好JDK后,在其bin目录下有许多exe可执行文件,其中java.exe命令的作用是以下哪一种? B

A、Java文档制作工具 B、Java解释器 C、Java编译器 D、Java启动器

5、如果jdk的安装路径为:d:\\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项?B A.d:\\jdk; B.d :\\jdk\\bin; C.d:\\jre\\bin; D.d:\\jre;

博学谷——让IT教学更简单,让IT学习更有效 三、问答题

1、简述Java的特点。

面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。 2、简述JRE与JDK的区别。

JRE(Java Runtime Environment,Java运行时环境),它相当于操作系统部分,提供了Java程序运行时所需要的基本条件和许多Java基础类,例如,IO类、GUI控件类、网络类等。JRE是提供给

普通用户使用的,如果你只想运行别人开发好的Java程序,那么,你的计算机上必须且只需安装JRE。 JDK(Java Development Kit,Java开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,是提供给Java开发人员使用的。初学者学习和使用Java语言时,首先必须下载和安装JDK。JDK中已经包含了JRE部分,初学者安装JDK后不必再去下载和安装JRE了。 JDK(Java Development Kit,Java开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,是提供给Java开发人员使用的。初学者学习和使用Java语言时,首先必须下载和安装JDK。JDK中已经包含了JRE部分,初学者安装JDK后不必再去下载和安装JRE了。 四、编程题

使用记事本编写一个HelloWorld程序,在dos命令行窗口编译运行。请按照题目的要求编写程序并给出运行结果。

public class HelloWorld { }

public static void main(String[] args) { }

System.out.println(\这是第一个Java程序!\

第2章 Java编程基础

一、填空题

博学谷——让IT教学更简单,让IT学习更有效

1、Java中的程序代码都必须在一个类中定义,类使用__class____关键字来定义。 2、布尔常量即布尔类型的两个值,分别是_true_____和_flase_____。

3、Java中的注释可分为三种类型,分别是_单行注释//__、__多行注释_/* */__、文档/注释** */______。 4、Java中的变量可分为两种数据类型,分别是_基本数据类型_____和_引用数据类型_____。 5、在Java中,byte类型数据占____1__个字节,short类型数据占__2____个字节,int类型数据占___4___个字节,long类型数据占____8__个字节。

6、在逻辑运算符中,运算符___&___和___&&___用于表示逻辑与,__|____和__||____表示逻辑或。 7、若x = 2,则表达式 ( x + + )/3 的值是__0___。 8、若int a =2; a+=3;执行后,变量a的值为__5____。 9、若int []a={12,45,34,46,23}; ,则a[2]= __34____。

10、若int a[3][2]={{123,345},{34,56},{34,56}},则a[2][1]= __56____。 二、判断题

1、Java语言不区分大小写。错

2、0xC5表示的是一个十六进制整数。对

3、continue 语句只用于循环语句中,它的作用是跳出循环。错 4、“/*…*/”中可以嵌套“//”注释,但不能嵌套“/*…*/”注释。对 5、-5%3的运算结果是2。错 三、选择题

1、以下选项中,哪些属于合法的标识符?(多选)AD

A、Hello_World B、class C、123username D、username123 2、关于方法重载的描述,以下选项中哪些是正确的?(多选)(AD)ABD

A、方法名必须一致

B、返回值类型必须不同

博学谷——让IT教学更简单,让IT学习更有效

C、参数个数必须一致 D、参数的个数或类型不一致

3、以下关于变量的说法错误的是? C

A、变量名必须是一个有效的标识符 B、变量在定义时可以没有初始值

C、变量一旦被定义,在程序中的任何位置都可以被访问

D、在程序中,可以将一个byte类型的值赋给一个int类型的变量,不需要特殊声明 4、以下选项中,switch语句判断条件可以接收的数据类型有哪些? (多选) ABCD

A、int B、byte C、char D、short

5、假设int x = 2,三元表达式 x>0?x+1:5 的运行结果是以下哪一个? C

A、0 B、2 C、3 D、5

6、下面的运算符中,用于执行除法运算是哪个? A

A、/ B、\\ C、% D、* 7、下列语句哪些属于循环语句?(多选) AC

A、for语句 B、if语句 C、while语句 D、switch语句

8、下面哪种写法可以实现访问数组arr的第1个元素?A

A、arr[0] B、arr(0) C、arr[1] D、arr(1)

9、以下哪个选项可以正确创建一个长度为3的二维数组?(B)C

A、 new int [2][3]; B、 new int[3][]; C、 new int[][3]; D、 以上答案皆不对 10、请先阅读下面的代码。

int x = 1; int y = 2;

if (x % 2 == 0) {

y++;

博学谷——让IT教学更简单,让IT学习更有效

} else { }

System.out.println(\

y--;

上面一段程序运行结束时,变量y的值为下列哪一项?A

A、1 B、2 C、3 D、switch语句

四、程序分析题

阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果。否则请说明编译失败的原因。

代码一:b=7(编译不通过。int值4和b相加时,由于变量b的类型为byte,取值范围没有int类型大,存不下int类型的值,因此编译不通过)

public class Test01 { }

public static void main(String[] args) { }

byte b = 3; b = b + 4;

System.out.println(\

代码二:不能,y只在{}有效(编译不通过。这是因为y是在最里层的代码块中定义的一个变量,只有在那个代码)

public class Test02 { }

public static void main(String[] args){ }

int x = 12; { } y = x;

System.out.println(\

int y = 96;

System.out.println(\System.out.println(\

代码三:3 因为没有break,,所以4以后都执行

public class Test03 {

博学谷——让IT教学更简单,让IT学习更有效 四、程序分析题

阅读下面的程序,分析代码是否能够编译通过,如果能编译通过,请列出运行的结果。否则请说明编译失败的原因。

代码一:不能,secret是私有成员,只能类内部访问(程序不能编译通过,因为在类A中的成员变量secret用private修饰,所以在类Test1中无法访问)

class A { }

public class Test1 { }

public static void main(String[] args) { }

A a = new A();

System.out.println(a.secret++); private int secret = 5;

代码二:250(程序不能编译通过,因为在静态方法method()中不能访问非静态成员变量x。)

public class Test2 { }

int x = 50;

static int y =200 ;

public static void method() { }

public static void main(String[] args) { }

Test2.method();

System.out.println(x+y);

代码三:Inner为私有内部类,不允许外部访问(inner)Inner inner = new Outer().new Inner();可以用外部类访问内部类

public class Outer {

public String name=\private class Inner { }

public static void main(String[] args) {

String name=\void showName(){ }

System.out.println(name);

博学谷——让IT教学更简单,让IT学习更有效

}

}

Inner inner = new Outer().new Inner(); System.out.println(inner.name);

五、简答题

1、构造方法和普通的成员方法有什么区别?

构造方法是类的一个特殊成员,它会在类实例化对象时被自动调用。而普通方法只有在使用的时候才会被调用。在定义构造方法时要求方法名与类名相同、在方法名的前面没有返回值类型的声明、在方法中不能使用return语句返回一个值

2、单例设计模式具备哪些特点?

单例模式可以保证在整个程序运行期间针对该类只存在一个实例对象。

六、编程题

1、请按照以下要求设计一个学生类Student,并进行测试。 要求如下:

1)Student类中包含姓名、成绩两个属性

2)分别给这两个属性定义两个方法,一个方法用于设置值,另一个方法用于获取值.

3)Student类中定义一个无参的构造方法和一个接收两个参数的构造方法,两个参数分别为姓名和成绩属性赋值

4)在测试类中创建两个Student对象,一个使用无参的构造方法,然后调用方法给姓名和成绩赋值,一个使用有参的构造方法,在构造方法中给姓名和成绩赋值

2、定义一个Father和Child类,并进行测试。

要求如下:

1)Father类为外部类,类中定义一个私有的String类型的属性name,name的值为“zhangjun”。

博学谷——让IT教学更简单,让IT学习更有效

2)Child类为Father类的内部类,其中定义一个introFather()方法,方法中调用Father类的name属性。

3)定义一个测试类Test,在Test类的main()方法中,创建Child对象,并调用introFather ()方法。

第4章 面向对象(下)

一、填空题

1、在Java语言中,允许使用已存在的类作为基础创建新的类,这种技术我们称为继承______。 2、一个类如果实现一个接口,那么它就需要实现接口中定义的全部_方法_____,否则该类就必须定义成_抽象类_____。

3、在程序开发中,要想将一个包中的类导入到当前程序中,可以使用_import_____关键字。 4、一个类可以从其它的类派生出来,派生出来的类称为_子类_____,用于派生的类称为_基类_____或者__父类____。

5、 JDK中定义了大量的异常类,这些类都是_Exception_____类的子类或者间接子类。 6、定义一个Java类时,如果前面加使用_final_____关键字修饰,那么该类不可以被继承。 7、如果子类想使用父类中的成员,可以通过关键字__super____引用父类的成员。 8、在Java语言中,所有的类都直接或间接继承自_Object_____类。

9、异常的捕获通常由try、catch两部分组成,_try_____代码块用来存放可能发生异常,_catch_____

代码块用 来处理产生的异常。

10、在Java语言中,要想是将一个已编译的类打包成jar文件,可以使用的命令是_jar-cvf_____,要

想在命令行窗口运行jar文件,可以使用的命令是__java-jar___。

二、判断题

博学谷——让IT教学更简单,让IT学习更有效

1、抽象方法必须定义在抽象类中,所以抽象类中的方法都是抽象方法。错 2、Java中被final关键字修饰的变量,不能被重新赋值。对 3、不存在继承关系的情况下,也可以实现方法重写。错 4、package声明语句应当为Java源文件中的第一条语句。对 5、接口中只能定义常量和抽象方法。错(对) 三、选择题

1、在类的继承关系中,需要遵循以下哪个继承原则?B

A、多重 B、单一 C、双重 D、不能继承 2、在Java语言中,以下哪个关键字用于在方法上声明抛出异常?C

A.try B.catch C.throws D.throw

3、关于super关键字以下说法哪些是正确的?(多选)ABD(ABC)

A、super关键字可以调用父类的构造方法 B、super关键字可以调用父类的普通方法 C、super与this不能同时存在于同一个构造方法中 D、super与this可以同时存在于同一个构造方法中 4、以下说法哪些是正确的?(多选)ABCD

A、Java语言中允许一个类实现多个接口 B、Java语言中不允许一个类继承多个类

C、Java语言中允许一个类同时继承一个类并实现一个接口 D、Java语言中允许一个接口继承一个接口

5、类中的一个成员方法被下面哪个修饰符修饰,该方法只能在本类被访问?C

A、public B、 protected C、 private D、default 6、关于抽象类的说法哪些是正确的?(多选)AC

博学谷——让IT教学更简单,让IT学习更有效

A、抽象类中可以有非抽象方法。

B、如果父类是抽象类,则子类必须重写父类所有的抽象方法。 C、不能用抽象类去创建对象。 D、接口和抽象类是同一个概念。

7、在Java中,要想让一个类继承另一个类,可以使用以下哪个关键字?C

A、inherits B、implements C、extends D、modifies 8、System类位于以下哪个包中?D

A、java.io B、java.util C、java.awt D、java.lang 9、已知类的继承关系如下: A

class Employee;

class Manager extends Employee; class Director extends Employee; 则以下语句能通过编译的有哪些?

A、 Employee e=new Manager(); B、 Director d=new Manager(); C、 Director d=new Employee(); D、Manager m=new Director(); 10、编译运行下面的程序,结果是什么?B

public class A { }

class B extends A { }

void test() { }

super.test();

System.out.print(\

public static void main(String[] args) { }

void test() { }

System.out.print(\B b = new B(); b.test();

博学谷——让IT教学更简单,让IT学习更有效

A、产生编译错误 B、代码可以编译运行,并输出结果AB C、代码可以编译运行,但没有输出 D、编译没有错误,但会产生运行时异常

四、分析题

阅读下面的程序,分析代码是否能编译通过,如果能编译通过,请列出运行的结果。如果不能编译通过,请说明原因。 代码一:进入catch代码块

进入finally代码块(程序编译能通过,这是因为int x = 2 / 0; System.out.println(x);这两条语句使用了try块,捕获了程序因为除以0而产生的异常情况,之后程序会继续向下执行,输出“进入catch代码块”,“进入finally代码块”。)

public class Test01 {

public static void main(String[] args) { }

try {

int x = 2 / 0;

System.out.println(x);

} catch (Exception e) { }

System.out.println(\进入catch代码块\System.out.println(\进入finally代码块\} finally {

}

代码二:不能,final修饰shout,不能被重写(程序编译不通过,这是因为在程序中使用了final关键字修饰Animal类,使得Animal类不能被继承。shout()方法中同样使用了final关键字,使得该方法不能被重写。)

final class Animal { }

class Dog extends Animal {

public void shout() {

// 程序代码

public final void shout() { }

// 程序代码

博学谷——让IT教学更简单,让IT学习更有效

}

class Test02 { }

public static void main(String[] args) { }

Dog dog=new Dog(); }

代码三:动物叫!

汪汪……

class Animal { }

class Dog extends Animal { }

public class Test03 { }

public static void main(String[] args) { }

Animal animal = new Dog(); animal.shout();

void shout() { }

super.shout();

System.out.println(\汪汪……\void shout() { }

System.out.println(\动物叫!\

代码四:不能,Dog没有实现Animal所有方法,Dog为抽象类不能创建对象(程序编译不通过,因为

接口中定义的方法不能有方法体,所以定义的eat()方法是错误的。接口中的方法必须在子类中全部实现,由于run()方法在子类中并没有重新实现,所以这也是错误的。)

interface Animal { }

class Dog implements Animal {

public void breathe() {

System.out.println(\’m breathing\}

void breathe(); void run(); void eat(){};

博学谷——让IT教学更简单,让IT学习更有效

public void eat() {

System.out.println(\’m eathing\} }

public class test04 {

public static void main(String [] args) { Dog dog = new Dog(); dog.breathe(); dog.eat(); } }

五、简答题

1、什么是方法重写?

在继承关系中,子类的方法与父类的某一方法具有相同的方法名、返回类型和参数列表,则称子类的该方法重写(覆盖)父类的方法。

2、什么是多态?

多态意味着一个对象有着多种形态,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。简单的说,多态就是使用父类类型的变量引用子类对象,根据被引用子类对象的特性,程序会得到不同的运行效果。

3、抽象类和接口的区别?

在Java中,使用abstract关键字修饰的类称之为抽象类。抽象类是不能被实例化的,通常需要写一个子类来继承抽象类,同时实例化子类来获得该类的对象。抽象类通常用于表示一种抽象的概念。

接口可以说是一种特殊的抽象类,接口中只能定义常量和抽象方法。由于接口的特殊性,在定义时需要使用interface关键字。

六、编程题

请按照题目的要求编写程序并给出运行结果。

1、 设计一个学生类Student和它的一个子类Undergraduate,要求如下:

博学谷——让IT教学更简单,让IT学习更有效

1) Student类有name(姓名)、和age(年龄)属性,一个包含两个参数的构造方法,用于给name和

age属性赋值,一个show()方法打印Student的属性信息

2) 本科生类Undergraduate增加一个degree(学位)属性。有一个包含三个参数的构造方法,前两个

参数用于给继承的name和age属性赋值,第三个参数给degree专业赋值,一个show()方法用于打印Undergraduate的属性信息

3) 在测试类中分别创建Student对象和Undergraduate对象,调用它们的show()。 2、设计一个Shape接口和它的两个实现类Square和Circle,要求如下:

1)Shape接口中有一个抽象方法area(),方法接收有一个double类型的参数,返回一个double类型的结果

2)Square和Circle中实现了Shape接口的area()抽象方法,分别求正方形和圆形的面积并返回 在测试类中创建Square和Circle对象,计算边长为2的正方形面积和半径为3的圆形面积

3、自定义一个异常类NoThisSoundException和Player类,在Player的play()方法中使用自定义异常,要求入下:

1) NoThisSongException继承Exception类,类中有一个无参和一个接收一个String类型参数的

构造方法,构造方法中都使用super关键字调用父类的构造方法。

2) Player类中定义一个play(int index)方法,方法接收一个int类型的参数,表示播放歌曲的索

引,当index>10时,paly()方法用throw关键字抛出NoThisSongException异常,创建异常对象时,调用有参的构造方法,传入“您播放的歌曲不存在”。

3) 在测试类中创建Player对象,并调用play()方法测试自定义的NoThisSongException异常,使

用try…catch语句捕获异常,调用NoThisSongException的getMessage()方法打印出异常信息。

第5章 多线程

一、填空题

博学谷——让IT教学更简单,让IT学习更有效

1、一个应用程序中有多条并发执行的线索,每条线索都被称作一个线程______,它们会交替执行,彼此

间可以进行_通信_____。

2、在实现多线程的程序时有两种方式,一是通过继_Thread_____承类,二是通过实现Runnable______接口。

3、yield()方法只能让相同优先级或者更高优先级、处于_就绪_____状态的线程获得运行的机会。 4、在Java语言中,同步方法需要用到关键字_synchronized_,对于同步方法而言无需指定同步锁,

它的同步

锁是方法所在的_对象_____,也就是_this_____(关键字)。

5、在多任务系统中,每个独立执行的程序称之为_线程_____,也就是“正在运行的程序”。

6、线程的整个生命周期分为五个阶段,分别是_新建_____、就绪______、_运行_____、_阻塞_____、和死亡_____。

7、线程的优先级用1~10之间的整数来表示,其中__10___代表优先级最高,__1___代表优先级最低。 8、在Thread类中,提供了一个start()方法,该方法用于启动线程______,当新线程启动后,系统会自动调用__run()____方法。

9、要想解决线程间的通信问题,可以使用__wait()____、notify()______、_notifyALL()_____方法。 10、要将某个线程设置为后台线程,需要调用该线程的_setDaemon(true)_____方法,该方法必须在

_start()_____方法之前调用。

二、判断题

1、当我们创建一个线程对象时,该对象表示的线程就立即开始运行。错 2、如果前台线程全部死亡,后台线程也会自动死亡。对 3、同步代码块中的锁对象可以是任意类型的对象。对

博学谷——让IT教学更简单,让IT学习更有效 六、编程题

1、编写一个JFrame窗口,要求如下:

1)在窗口的最上方放置一个JLabel标签,标签中默认的文本是“此处显示鼠标右键点击的坐标” 2)为JFrame窗口添加一个鼠标事件,当鼠标右键点击窗口时,鼠标的坐标在JLabel标签中显示 参考答案

import java.awt.*;

import java.awt.event.*;import javax.swing.*; public class MyMouseHandler extends JFrame { }

public MyMouseHandler() { }

public static void main(String[] args) { }

new MyMouseHandler();

final JLabel label = new JLabel(\此处显示鼠标右键点击的坐标\label.setOpaque(true);

label.setBackground(Color.PINK); this.add(label, BorderLayout.NORTH); this.setSize(300, 200);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.addMouseListener(new MouseAdapter() {

public void mouseClicked(MouseEvent e) { }

if (e.getButton() == e.BUTTON1) { }

int x = e.getX(); int y = e.getY();

String banner = \鼠标当前点击位置的坐标是\label.setText(banner);

});

this.setVisible(true);

2、编写一个JFrame窗口,要求如下:

1)窗口中的NORTH区域中放置一个JPanel面板 2)JPanel面板中从左到右依次放置如下组件: JLabel标签,标签的文本为“兴趣”

博学谷——让IT教学更简单,让IT学习更有效

三个JCheckBox多选按钮,文本分别为“羽毛球”、“乒乓球”、“唱歌” JLabel标签,标签的文本为“性别”

两个JRadioButton按钮,文本分别为“男”、“女”

3)窗口的CENTER区域放置一个JScrollPane容器,容器中放置一个JTextArea文本域 4)当点击多选按钮和单选按钮时,会把选中按钮的文本显示在JTextArea文本域中。 参考答案

import java.awt.*; import java.util.*; import javax.swing.*; import java.awt.event.*;

public class Information extends JFrame {

// 窗口NORTH部的JPanel面板

private JPanel panel = new JPanel(); // 爱好标签

private JLabel lb1 = new JLabel(\爱好\// 三个表示爱好的JCheckBox复选框

private JCheckBox cb1 = new JCheckBox(\羽毛球\private JCheckBox cb2 = new JCheckBox(\乒乓球\private JCheckBox cb3 = new JCheckBox(\唱歌\// 性别标签

private JLabel lb2 = new JLabel(\性别\// 表示性别的JRadioButton单选框

private JRadioButton rb1 = new JRadioButton(\男\private JRadioButton rb2 = new JRadioButton(\女\// ButtonGroup添加JRadioButton,实现单选功能 private ButtonGroup bg = new ButtonGroup(); // 文本域组件

private JTextArea area = new JTextArea();

// 窗口CENTER部的JScrollPane面板,其中放置area文本域 private JScrollPane pane = new JScrollPane(area); // Set集合存放选中的兴趣

private Set hobbies = new HashSet(); // gender选中的性别

private String gender = \// JCheckBox复选框的事件监听器

private ActionListener listener1 = new ActionListener() {

public void actionPerformed(ActionEvent e) {

JCheckBox cb = (JCheckBox) e.getSource();

博学谷——让IT教学更简单,让IT学习更有效

};

// JRadioButton单选框的事件监听器

private ActionListener listener2 = new ActionListener() { };

private void print() { }

public Information() {

//添加标签、单选和复选按钮 panel.add(lb1); panel.add(cb1); panel.add(cb2); panel.add(cb3); panel.add(lb2); panel.add(rb1); panel.add(rb2); bg.add(rb1); bg.add(rb2); // 清空文本域 area.setText(\

// 如果Set集合中有元素,打印兴趣 if (hobbies.size() > 0)

area.append(\你的兴趣爱好有: \

Iterator it = hobbies.iterator(); while (it.hasNext()) { }

// 如果gender不为空字符串,打印性别 if (!\

area.append(\你的性别为: \area.append(it.next() + \

public void actionPerformed(ActionEvent e) { }

JRadioButton jb = (JRadioButton) e.getSource(); gender = jb.getText(); print(); }

// 选中的复选框把文本添加到Set集合中 if (cb.isSelected()) {

hobbies.add(cb.getText());

// 反之从集合中移除 } else { }

print();

hobbies.remove(cb.getText());

// 打印方法

博学谷——让IT教学更简单,让IT学习更有效

}

}

public static void main(String[] args) { }

new Information();

// 为单选和复选按钮添加事件监听器 cb1.addActionListener(listener1); cb2.addActionListener(listener1); cb3.addActionListener(listener1); rb1.addActionListener(listener2); rb2.addActionListener(listener2);

// 将JPanel面板和JScrollPane面板添加到JFrame容器中 Container container = this.getContentPane(); container.add(panel, BorderLayout.NORTH); container.add(pane, BorderLayout.CENTER); this.pack();

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true);

3、编写一个JFrame窗口,要求如下:

1)窗口包含一个菜单栏和一个JLabel标签。

2)菜单栏中有两个菜单,第一个菜单有两个菜单项,它们之间用分隔符分开,第二个菜单有一个

菜单项。

3)JLabel标签放置在窗口的中间(即BorderLayout.CENTER),当点击菜单项的时候,菜单项中的

文本显示的JLabel标签中。

参考答案

import javax.swing.*; import java.awt.*; import java.awt.event.*;

public class MyMenu extends JFrame implements ActionListener {

JLabel label = new JLabel(\请选择菜单\JMenuItem aaMenuItem, baMenuItem; MyMenu() {

JMenuBar menuBar = new JMenuBar(); JMenu aMenu = new JMenu(\菜单A\JMenu bMenu = new JMenu(\菜单B\

JMenuItem aaMenuItem = new JMenuItem(\菜单项 AA\JMenuItem abMenuItem = new JMenuItem(\菜单项AB\

博学谷——让IT教学更简单,让IT学习更有效

}

public void actionPerformed(ActionEvent e) { }

public static void main(String args[]) {

JFrame frame = new MyMenu();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300, 200); frame.setVisible(true);

JMenuItem source = (JMenuItem) (e.getSource()); label.setText(\选择了菜单:\label.setHorizontalAlignment(JLabel.CENTER); JMenuItem baMenuItem = new JMenuItem(\菜单项 BA\menuBar.add(aMenu); menuBar.add(bMenu); aMenu.add(aaMenuItem); aMenu.addSeparator(); aMenu.add(abMenuItem); bMenu.add(baMenuItem);

aaMenuItem.addActionListener(this); abMenuItem.addActionListener(this); baMenuItem.addActionListener(this); setJMenuBar(menuBar);

getContentPane().add(label, BorderLayout.CENTER);

}

第10章 网络编程

一、填空题

1、TCP协议的特点是 面向连接 ,即在传输数据前先在 客户端 和 服务器端 建立逻辑连接。

2、在计算机中,端口号是用 2 字节,也就是16位的二进制数表示,它的取值范围是 0-65535 。

3、TCP/IP协议被分为四个层,分别是 链路层 、 网络层 、 运输层 、 应用层 。 4、在JDK中,IP地址用 InetAddress 类来表示的,该类提供了许多和IP地址相关的操作。。 5、使用UDP协议开发网络程序时,需要使用两个类,分别是 DatagramPacket 和

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

Top