用java抽象类实现菜单交互模块

 

//——————————————Menu类————————————

InputData类参见上面;

abstract class Menu

{

protected String title = null; // 菜单标题

public String getTitle() // 获取菜单

{

return this.title;

}

public void setTitle(String title)

{

this.title = title; // 设置菜单

}

public abstract void operate(); // 菜单操作

}

class MenuAdd extends Menu // 添加菜单

{

public void operate() // 覆写抽象方法

{

System.out.println(“增加菜单调用成功!数据增加成功!”);

}

}

class MenuDelete extends Menu // 删除菜单

{

public void operate() // 覆写抽象方法

{

System.out.println(“删除菜单调用成功!数据删除成功!”);

}

}

class MenuAlter extends Menu // 修改菜单

{

public void operate() // 覆写抽象方法

{

System.out.println(“修改菜单调用成功!数据修改成功!”);

}

}

class MenuLook extends Menu // 查看菜单

{

public void operate() // 覆写抽象方法

{

System.out.println(“查看菜单调用成功!数据查看成功!”);

}

}

class MenuExit extends Menu // 退出菜单

{

public void operate() // 覆写抽象方法

{

System.out.println(“退出菜单调用成功!系统退出成功!”);

System.exit(0);

}

}

//———————————————工厂类——————————————

class Factory

{

private Menu[] menu = null; // 声明菜单数组

private int menuNum = 0; // 菜单个数

public Factory()

{

this.menuNum = 5;

this.menu = makeMenu(this.menuNum); // 开辟5个空间

this.initMenu();

this.selectMenu();

}

private Menu[] makeMenu(int menuNum)

{

return new Menu[menuNum]; // 生成菜单模型

}

private void initMenu() // 实例化菜单

{

this.menu[0] = new MenuAdd();

this.menu[0].setTitle(“[1]**增加数据**”);

this.menu[1] = new MenuDelete();

this.menu[1].setTitle(“[2]**删除数据**”);

this.menu[2] = new MenuAlter();

this.menu[2].setTitle(“[3]**修改数据**”);

this.menu[3] = new MenuLook();

this.menu[3].setTitle(“[4]**查看数据**”);

this.menu[4] = new MenuExit();

this.menu[4].setTitle(“[5]**系统退出**”);

}

private void selectMenu()

{

InputData input = new InputData(); // 获取标准输入

int select = 0;

do

{

System.out.println(“******数据管理系统**********”);

for (Menu m : this.menu)

{

System.out.println(m.getTitle());// 打印菜单信息

}

select = input.getInt(“请选择:”, “请输入正确的选项”) – 1; // 用户输入

this.menu[select].operate(); // 执行选择的菜单操作

}

else

{

System.out.println(“请输入合法的选项数字!”);

}

}

while (true);

}

}

//———————————————菜单操作类—————————————————

public class MenuDataSystem

{

public static void main(String[] args)

{

new Factory(); // 系统初始化

}

}

/*

administrator@xu-desktop:~$ com.mldn.MenuDataSystem

******数据管理系统**********

[1]**增加数据**

[2]**删除数据**

[3]**修改数据**

[4]**查看数据**

[5]**系统退出**

请选择:

1

增加菜单调用成功!数据增加成功!

******数据管理系统**********

[1]**增加数据**

[2]**删除数据**

[3]**修改数据**

[4]**查看数据**

[5]**系统退出**

请选择:

2

删除菜单调用成功!数据删除成功!

******数据管理系统**********

[1]**增加数据**

[2]**删除数据**

[3]**修改数据**

[4]**查看数据**

[5]**系统退出**

请选择:

3

修改菜单调用成功!数据修改成功!

******数据管理系统**********

[1]**增加数据**

[2]**删除数据**

[3]**修改数据**

[4]**查看数据**

[5]**系统退出**

请选择:

4

查看菜单调用成功!数据查看成功!

******数据管理系统**********

[1]**增加数据**

[2]**删除数据**

[3]**修改数据**

[4]**查看数据**

[5]**系统退出**

请选择:

请输入正确的选项

请选择:

34

请输入合法的选项数字!

******数据管理系统**********

[1]**增加数据**

[2]**删除数据**

[3]**修改数据**

[4]**查看数据**

[5]**系统退出**

请选择:

5

退出菜单调用成功!系统退出成功!

*/

————–// 数据接收类

package com.mldn;

import .io.BufferedReader;

import .io.InputStreamReader;

import .io.IOException;

import .util.Date;

import java.text.SimpleDateFormat;

import java.text.ParseException;

class InputData // 实现类型数据输入

{

private BufferedReader buf = null; // 读取数据

public InputData()

{

this.buf = new BufferedReader(new InputStreamReader(System.in)); // 接收标准输入;

}

public String getString(String info) // 获取输入的字符串形式

{

String temp = null; // 接收输入数据

System.out.println(info); // 打印提示信息

try

{

temp = this.buf.readLine(); // 读取标准输入以字符串形式返回;

}

catch (IOException e)

{

e.printStackTrace();

}

return temp;

}

public int getInt(String info, String err) // 获取整型的输入数据

{

int temp = 0; // 接收输入

String str = null; // 获取字符串信息

boolean flag = true; // 监视输入

while (flag)

{

str = this.getString(info); // 打印提示,并等待接收字符串信息

if (str.matches(“^\\d+$”)) // 判断是数字组成

{

temp = Integer.parseInt(str); // String–>Integer–>int

flag = false; // 结束循环

}

else

{

System.out.println(err); // 打印错误信息

}

}

return temp;

}

public float getFloat(String info, String err) // 获取输入的float型小数

{

float temp = 0.0f; // 接收输入

String str = null; // 获取字符串信息

boolean flag = true; // 监视输入

while (flag)

{

str = this.getString(info); // 打印提示,并等待接收字符串信息

if (str.matches(“^\\d+.?\\d+f$”)) // 判断是数字组成

{

temp = Float.parseFloat(str); // String–>Float–>float

flag = false; // 结束循环

}

else

{

System.out.println(err); // 打印错误信息

}

}

return temp;

}

public Date getDate(String info, String err) // 获取输入的Date型日期

{

Date temp = null; // 接收输入

String str = null; // 获取字符串信息

boolean flag = true; // 监视输入

while (flag)

{

str = this.getString(info); // 打印提示,并等待接收字符串信息

if (str.matches(“^\\d{4}-[0-1]\\d-[0-3]\\d$”)) // 判断是数字组成

{

SimpleDateFormat sdf = new SimpleDateFormat(“yyyy-MM-dd”); // 实例化日期风格

try

{

temp = sdf.parse(str); // String–>Date

}

catch (ParseException e)

{

e.printStackTrace();

}

flag = false; // 结束循环

}

else

{

System.out.println(err); // 打印错误信息

}

}

return temp;

}

}

声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 智乐兔
转载请注明:转自《用java抽象类实现菜单交互模块
本文地址:https://www.zhiletu.com/archives-187.html
关注公众号:智乐兔

赞赏

wechat pay微信赞赏alipay pay支付宝赞赏

上一篇
下一篇

相关文章

在线留言

你必须 登录后 才能留言!

在线客服
在线客服 X

售前: 点击这里给我发消息
售后: 点击这里给我发消息

智乐兔官微