1.数据类。2.菜单类。3.显示,添加类。4.测试类 运行测试类后,把数据类的数组传给了菜单类中的数组.如果要进入3功能时候前,先把菜单类的数组传送给 3类中的数组.进入3类 在3类运行完后把3类中的数据返回给2类。
启动主菜单类,
进入功能类显示修改前数组的内容,
返回主菜单,
进入功能类个修改数组内容,
返回主菜单类,
进入功能类显示修改后数组的内容                                              请指出我错在哪谢谢
----------------------------------------------------------------------------------------------
public class Test {
public static void main(String[] args) {
Data data =new Data();      //数据类的对象
data.init(); //初始化数据
Menu menu=new Menu(); //menu类的对象
menu.setData(data.name, data.sex, data.age); //把Data类的数组对象传到Menu类方法中
menu.menu(); //启动开始菜单
}
}
---------------------------------------------------------------------------------------------------
import java.util.*;
public class Menu {
ShowAdd SA= new ShowAdd();               //ShowAdd功能类的对象

String name[]; String sex[]; int age[];

/**
 * 1 接收main传送过来的data的数组-----------本地
*   2 也要接收ShowAdd传送过来的数组----本地
*/


public void setData(String[] name1, String[] sex1, int[] age1) { //接受mian传过来的数组放到本类的
name=name1; //数组中
sex=sex1;
age=age1;
}

/**
 * 主菜单
  */
public void menu(){
System.out.println("1.显示 2.添加");    
System.out.println("Menu类中数组");

System.out.println(name[0] + "\t\t" + sex[0] + "\t\t" + age[0]);
System.out.println(name[1] + "\t\t" + sex[1] + "\t\t" + age[1]);

Scanner input = new Scanner(System.in);
int xxx=input.nextInt();
switch (xxx) {
case 1:
SA.setData(name, sex, age);                             //传送本类数据------------ShowAdd类
SA.Show();
break;
case 2:
SA.setData(name, sex, age);                             //传送本类数据------------ShowAdd类
SA.Add();
break;
default:
break;
}
}
}
-----------------------------------------------------------------------------------------------
import java.util.*;
public class ShowAdd { String name[]; String sex[]; int age[];
/**
 * 接收menu----本地
*/
public void setData(String[] name1, String[] sex1, int[] age1) { // 接收主菜单类传过来的数组 name = name1; // 存入到本类中
sex = sex1;
age = age1;
}
/**
 * 显示所有
*/
public void Show() {
 Menu menu = new Menu();
Scanner input = new Scanner(System.in);
System.out.println(name[0] + "\t\t" + sex[0] + "\t\t" + age[0]);
System.out.println(name[1] + "\t\t" + sex[1] + "\t\t" + age[1]);
menu.setData(name, sex, age);            //把本地改动过的数组传回主菜单
System.out.println("输入一个字母返回主菜单");
input.next();
returnMenu();
}
/**
 * 添加新用户
*/
public void Add() {
 Menu menu = new Menu();

 /*新数据输入第一个空位置*/
 int index=-1;
for (int i=0;i<name.length;i++){
index=i;
if (name==null){
break;
}
}
Scanner input = new Scanner(System.in);
System.out.println("请输入新用户名:\t");
System.out.print("名字:\t");
String newName=input.next();
System.out.print("性别:\t");
String newSex=input.next();
System.out.print("年龄:\t");
int newAge=input.nextInt();

name[1]=newName;
sex[1]=newSex;
age[1]=newAge;
System.out.println("********添加后*********");
System.out.println(name[0] + "\t\t" + sex[0] + "\t\t" + age[0]);
System.out.println(name[1] + "\t\t" + sex[1] + "\t\t" + age[1]);

 menu.setData(name, sex, age);            //把本地改动过的数组传回主菜单

System.out.println("输入一个字母返回主菜单");
input.next();
returnMenu();
}
public void returnMenu(){
 Menu menu = new Menu();  menu.menu();
 
}}
--------------------------------------------------------------------------------------------
public class Data {
String name[]=new String[5]; String sex[]=new String[5]; int age[]=new int[5]; public void init() {

name[0] = "王书波";
sex[0] = "男";
age[0] = 32; }
}
--------------------------------------------------------------------------
谢谢哥哥,姐姐们。。帮帮我~~

解决方案 »

  1.   

    [code]
    Menu类中数组
    王书波 男 32
    null null 0
    [/code]以上是我运行你这段代码的结果,没有报错啊
      

  2.   

    Menu类中数组
    王书波 男 32
    null null 0
    楼上没有显示
      

  3.   

    public void returnMenu(){ 
    Menu menu = new Menu(); 
    menu.setData(name, sex, age);  
    menu.menu(); 别的地方的这些都删了就好了。要自己结贴去了。