Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 数组中设置值的问题_Java - Fatal编程技术网

Java 数组中设置值的问题

Java 数组中设置值的问题,java,Java,我是java新手,正在制作一个酒店系统。我有三个主要的班级:房间、楼层和酒店。除房间号外,每层都有相同类型的房间。因此,我只需设定10个房间,然后将它们全部分配给我的5层,然后将房间号分配给相应楼层的每个房间。 房间号的第一个数字为楼层号,其余数字为1-10。 然而,我在酒店的所有房间都被分配了5楼的号码 这是我的代码片段 class Floor { private int floorNo; private Room[] Rooms; public Floor()

我是java新手,正在制作一个酒店系统。我有三个主要的班级:房间、楼层和酒店。除房间号外,每层都有相同类型的房间。因此,我只需设定10个房间,然后将它们全部分配给我的5层,然后将房间号分配给相应楼层的每个房间。 房间号的第一个数字为楼层号,其余数字为1-10。 然而,我在酒店的所有房间都被分配了5楼的号码

这是我的代码片段

class Floor
{
    private int floorNo;
    private Room[] Rooms;

    public Floor()
    {
        floorNo = 0;
        Rooms = null;
    }

    public Floor(int f, int t)
    {
        floorNo = f;
        Rooms = new Room[t];
    }

    public void createRooms(Room[] R)
    {
        for (int i = 0; i < 10; i++)
        {
            Rooms[i] = new Room();
            Rooms[i] = R[i];
        }
    }

    public void setRoom(int i, int f, int r)
    {
        Rooms[i].setFloorNo(f);
        Rooms[i].setRoomno(r);
    }

}

public class Main
{
    public static void main(String[] args)
    {
        Room[] Rooms = new Room[10];
        for (int n = 0; n < 10; n++)
        {
            Rooms[n] = new Room();
        }
    }

    Floor[] Floors = new Floor[5];
    for (int n = 0; n < 5; n++)
    {
        Floors[n] = new Floor(n + 1, 10);
        Floors[n].createRooms(Rooms);

        for (int i = 0; i < 10; i++)
        {
            Floors[n].setRoom(i, n + 1, i + 1);
        }
        for (int n = 0; n < 5; n++)
        {
            Floors[n].print();
        }
    }
}
课堂
{
私人室内地板;
私人房间[]间;
公众席()
{
floorNo=0;
房间=空;
}
公共楼层(内部f、内部t)
{
floorNo=f;
房间=新房间[t];
}
公共房间(房间[]R)
{
对于(int i=0;i<10;i++)
{
房间【i】=新房间();
房间[i]=R[i];
}
}
公共无效设置室(内部i、内部f、内部r)
{
房间[i].塞特弗劳诺(f);
房间[i]。设置房间号(r);
}
}
公共班机
{
公共静态void main(字符串[]args)
{
房间[]间=新房间[10];
对于(int n=0;n<10;n++)
{
房间[n]=新房间();
}
}
楼层[]楼层=新楼层[5];
对于(int n=0;n<5;n++)
{
楼层[n]=新楼层(n+1,10);
楼层[n]。创建房间(房间);
对于(int i=0;i<10;i++)
{
楼层[n]。设定室(i,n+1,i+1);
}
对于(int n=0;n<5;n++)
{
楼层[n]。打印();
}
}
}

您可以这样尝试smth:

public class Hotel {

    private List<Floor> floors = new ArrayList<>();

    public boolean addFloor(Floor floor) {
        return floors.add(floor);
    }

    public static void main(String[] args) {

        int totalFloors = 5;
        int totalRoomsOnAFloor = 10;

        final Hotel hotel = new Hotel();

        int roomNumber = 0;
        for (int floorNumber = 0; floorNumber < totalFloors; floorNumber++) {
            Floor floor = new Floor(floorNumber);
            for (int floorRoomNumber = 0; floorRoomNumber < totalRoomsOnAFloor; floorRoomNumber++) {
                Room room = new Room(floor, roomNumber++);
                floor.addRoom(room);
                System.out.println("Added " + room.toString());
            }
        }

    }

    public static class Floor {

        private List<Room> rooms = new ArrayList<>();
        private int number;

        public Floor(int number) {
            this.number = number;
        }

        public boolean addRoom(Room room) {
            return rooms.add(room);
        }

        public int getNumber() {
            return number;
        }

        @Override
        public String toString() {
            return "Floor{" +
                    "number=" + number +
                    '}';
        }

    }

    public class Room {

        private final Floor floor;
        private final int number;

        public Room(Floor floor, int number) {
            this.floor = floor;
            this.number = number;
        }

        public int getNumber() {
            return number;
        }

        public Floor getFloor() {
            return floor;
        }

        @Override
        public String toString() {
            return "Room{" +
                    "number=" + number +
                    ", on the floor=" + floor +
                    '}';
        }

    }

}
课堂
{
私人室内地板;
私人房间[]间;
公众席()
{
floorNo=0;
房间=空;
}
公共楼层(内部f、内部t)
{
floorNo=f;
房间=新房间[t];
}
公共房间(房间[]R)
{   
对于(int i=0;i<10;i++)
{
房间【i】=新房间();
房间[i]=R[i];
}
}
公共无效设置室(内部i、内部f、内部r)
{
房间[i].塞特弗劳诺(f);
房间[i]。设置房间号(r,f);
}
}
教室
{
公共空间设置平面图(int i)
{
系统输出打印项次(“楼层编号为”+i);
}
公共无效设置房间号(int j,int k)
{
系统输出打印项次(“房间号为“+k+”+j);
}
}
公共班机
{
公共静态void main(字符串[]args)
{
房间[]间=新房间[10];
对于(int n=0;n<10;n++)
{
房间[n]=新房间();
}
楼层[]楼层=新楼层[5];

对于(int n=0;它是否编译?我没有看到
total
声明了什么问题?它是否仍在编译???您需要发布完全相同的代码,不要放置位和块。请参见编辑。当我调用地板打印函数时,它会为它包含的每个房间调用打印。但是,所有房间都分配了最后10个数字bers.例如51 52 53…其中“5”表示楼层编号。正确的输出应该是11 12 13…21 22…它永远不会在任何编译器中编译。首先修复所有编译问题。虽然此代码可能会回答问题,但提供有关此代码为什么和/或如何回答问题的其他上下文可提高其长期价值。Ac实际上,初始上下文甚至没有编译,所以我根据所描述的问题提出了自己的实现,我认为有总比没有好)这种问答方式更适合
Added Room{number=0, on the floor=Floor{number=0}}
Added Room{number=1, on the floor=Floor{number=0}}
Added Room{number=2, on the floor=Floor{number=0}}
...
Added Room{number=47, on the floor=Floor{number=4}}
Added Room{number=48, on the floor=Floor{number=4}}
Added Room{number=49, on the floor=Floor{number=4}}
class Floor   
{
    private int floorNo;
    private Room[] Rooms;
    public Floor()
    {
        floorNo=0;
        Rooms=null;

    }
    public Floor(int f, int t)
     {
    floorNo=f;      
    Rooms = new Room[t];

    }
    public void createRooms(Room[] R)
    {   
        for(int i = 0 ; i < 10; i ++)
        {
        Rooms[i] = new Room();
        Rooms[i] = R[i];
        }
    }

    public void setRoom(int i, int f, int r)
    {
    Rooms[i].setFloorNo(f);
    Rooms[i].setRoomno(r,f);
    }
}

class Room
{
    public void setFloorNo(int i)
    {
        System.out.println("floor no is "+i);
    }
    public void setRoomno(int j,int k)
    {
        System.out.println("room no is "+k+""+j);
    }

}

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

     Room [] Rooms= new Room[10];
     for(int n = 0; n < 10; n++)
     {
         Rooms[n] = new Room ();
     }

     Floor [] Floors= new Floor[5];
     for(int n=0; n<5; n++)
     {
     Floors[n] = new Floor (n+1,10);
     Floors[n].createRooms(Rooms);
     }

     for(int n=0; n < 5; n++)
     { 
         for(int i=0;i<10;i++)
         Floors[n].setRoom(i, n+1, i+1);
    enter code here
     }
     }

}