五、程序设计题
1、按以下要求编写程序
(1) 创建一个Rectangle类,添加width和height两个成员变量
(2) 在Rectangle中添加两种方法分别计算矩形的周长和面积
(3) 编程利用Rectangle输出一个矩形的周长和面积
解答:
public class Rectangle {
float width, height;
public Rectangle(float width, float height) {
this.width = width;
this.height = height;
}
public float getLength(){
return (this.width + this.height) * 2;
}
public float getArea(){
return this.width * this.height;
}
public static void main(String [] args) {
Rectangle rect = new Rectangle(10, 20);
System.out.println("周长是:" + rect.getLength());
System.out.println("面积是:" + rect.getArea());
}
}
2、按以下要求编写程序
(1) 编写Animal接口,接口中声明run() 方法
(2) 定义Bird类和Fish类实现Animal接口
(3) 编写Bird类和Fish类的测试程序,并调用其中的run()方法
解答:
public interface Animal {
void run();
}
class Bird implements Animal {
public void run() {
System.out.println("鸟儿在飞...");
}
}
class Fish implements Animal {
public void run() {
System.out.println("鱼儿在游...");
}
}
public class TestAnimal {
public static void main(String[] args) {
Bird bird = new Bird();
bird.run();
Fish fish = new Fish();
fish.run();
}
}
3、编写一个Frame框架应用程序,要求如下:
(1) 在窗口设置两个菜单“文件”、“编辑”
(2) 在“文件”菜单里添加三个菜单项“打开”、“保存”、“关闭”
(3) 在“编辑”菜单里添加两个菜单项“复制”、“粘贴”
(4) 点击关闭菜单项时,使程序关闭。
解答:
import java.awt.Color;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
/*
* 主窗体
*/
public class MyFrame extends Frame {
private static final long serialVersionUID = 6895463895656626294L;
private Frame frmMain; // 窗体
MenuBar mb; // 菜单栏
Menu mnuFile; // "文件"菜单
Menu mnuEdit; // "编辑"菜单
MenuItem miOpen; // "打开"菜单项
MenuItem miSave; // "保存"菜单项
MenuItem miClose; // "关闭"菜单项
MenuItem miCopy; // "复制"菜单项
MenuItem miPaste; // "粘贴"菜单项
public MyFrame() {
frmMain = new Frame("主窗体");
// 创建菜单栏
mb = new MenuBar();
// 创建菜单
mnuFile = new Menu("文件");
mnuEdit = new Menu("编辑");
// 创建菜单项
miOpen = new MenuItem("打开");
miSave = new MenuItem("保存");
miClose = new MenuItem("关闭");
miCopy = new MenuItem("复制");
miPaste = new MenuItem("粘贴");
}
public void showFrame() {
frmMain.setSize(800, 600);
frmMain.setLocation(100, 100);
frmMain.setBackground(Color.white);
frmMain.setVisible(true);
frmMain.setLayout(null);
frmMain.addWindowListener(new WindowHandler()); // 注册窗口监听器
// 将菜单栏放入窗体中
frmMain.setMenuBar(mb);
// 将菜单放入菜单栏中
mb.add(mnuFile);
mb.add(mnuEdit);
// 将菜单项放入菜单中
mnuFile.add(miOpen);
mnuFile.add(miSave);
mnuFile.add(miClose);
mnuEdit.add(miCopy);
mnuEdit.add(miPaste);
// 注册动作事件监听器
miClose.setActionCommand("miClose_Clicked");
miClose.addActionListener(new MenuHandler());
}
// 定义一个内部类,在这个类中编写窗口关闭事件处理程序。
private class WindowHandler extends WindowAdapter {
public void windowClosing(WindowEvent e) {
System.exit(0); // 退出应用程序,状态码 0 表示正常终止,非 0 表示异常终止。
}
}
// 定义一个内部类,在这个类中编写动作事件处理程序。
private class MenuHandler implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand() == "miClose_Clicked") {
System.exit(0); // 退出应用程序
}
}
}
}
public class TestMyFrame {
public static void main(String[] args) {
// 启动主窗体
MyFrame guiWindow = new MyFrame();
guiWindow.showFrame();
}
}