luodiab 2021-09-24 16:09 采纳率: 68.8%
浏览 41
已结题

java中在构造方法中已初始化的数组,在另一个显示方法中数组仍为零

java中在构造方法中已初始化的数组,在另一个显示方法Print中数组仍为零,我的目的是通过Print方法打印酒店的房间信息,但在构造方法已经初始化后,在Print中电脑提醒我排除数组为零的情况。求问。

public class Test06 {
    public static void main(String[] args) {
        FrontDesk s=new FrontDesk();
        //System.out.println();
        s.Print();
    }
}

//房间对象
class Room{
    //房间编号
    private String number;
    //房间类型属性
    private String attribute;
    //房间状态,"0"代表空闲,"1"代表有客人居住;
    private boolean status;

    //构造方法
    public Room(String number, String attribute, boolean status) {
        this.number = number;
        this.attribute = attribute;
        this.status = status;
    }

    //get方法
    public String getNumber() {
        return number;
    }

    public String getAttribute() {
        return attribute;
    }

    public boolean getStatus() {
        return status;
    }

    //重写toString方法
    public String toString() {
        return "[" + number + "," + attribute + "," + (status ? "可预订":"不可预定") + "]";
    }
}

//酒店前台类
class FrontDesk{
    //全部的房间
    private Room[][] rooms;
    //构造方法
    public FrontDesk() {
        Room[][] rooms=new Room[3][3];
        //System.out.println(rooms[2].length);
        for(int i=0;i<rooms.length;i++){
            for(int k=0;k<rooms[i].length;k++){
                if(i==0){
                    rooms[i][k]=new Room((i+1)+"-"+(k+1),"单人间",false);
                }else if (i==1){
                    rooms[i][k]=new Room((i+1)+"-"+(k+1),"双人间",false);
                }else if (i==2){
                    rooms[i][k]=new Room((i+1)+"-"+(k+1),"豪华间",false);
                }
            }
        }
    }

    //展示每一间客房的状态
    public void Print(){
        System.out.println("爱丽丝酒店房间名单:");
        if(rooms==null||rooms.length==0){
            System.out.println("错误!!!");
            return;
        }else{
            for(int j=0;j<rooms.length;j++){
                for(int k=0;k<3;k++){
                    System.out.print("房间编号:" + rooms[j][k].getNumber() + " 房间类型:"
                            + rooms[j][k].getAttribute() + " 房间状态:" + rooms[j][k].getStatus()+"   ");

                }
                System.out.println();
            }
        }
    }
}


  • 写回答

3条回答 默认 最新

  • 听见温暖www 2021-09-24 16:57
    关注

    FrontDesk构造函数里
    Room[][] rooms=new Room[3][3];
    改为
    rooms=new Room[3][3];

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 10月2日
  • 已采纳回答 9月24日
  • 创建了问题 9月24日

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器