Java 多类布尔函数

Java 多类布尔函数,java,class,boolean,Java,Class,Boolean,我正在尝试参加一个3级课程,并通过一个布尔值来预订房间。我有司机程序,建筑程序,房间程序。我将reserve设置为false,但当文本语句已经设置为true时,我不知道如何打印它。我想我要么在驱动程序的类中传递布尔值是错误的,要么遗漏了什么。我在building类中使用了一个if语句来处理reserveRoom,看看打印一个语句是否已经是真的,不管我走哪条路,它都不起作用 任何帮助都将不胜感激。 多谢各位 从我的驱动程序发送布尔值到建筑程序 System.out.print ("W

我正在尝试参加一个3级课程,并通过一个布尔值来预订房间。我有司机程序,建筑程序,房间程序。我将reserve设置为false,但当文本语句已经设置为true时,我不知道如何打印它。我想我要么在驱动程序的类中传递布尔值是错误的,要么遗漏了什么。我在building类中使用了一个if语句来处理reserveRoom,看看打印一个语句是否已经是真的,不管我走哪条路,它都不起作用

任何帮助都将不胜感激。 多谢各位

从我的驱动程序发送布尔值到建筑程序

  System.out.print ("Which room would you like to reserve?");
  System.out.print (building);
  System.out.print ("reserve: ");
  reservNum = input.nextInt();

  building.reserveRoom(reserve, reservNum);
来自我的建筑课

public void reserveRoom (boolean reserve, int count)
{
    //class constant

    //class variables

    /*****************************************************/

    room [count].updateReserve(reserve);

} // end 
从教室里

    public void updateReserve(boolean newReserve)
{
    //class constant

    //class variables

    /*****************************************************/


    if (newReserve == false)
    {
        roomAvail = true;
    }
    else
    {
        roomAvail = false;
    }
} // END 

嗯,你的问题中缺少一些信息,但它认为你在寻找:

public void updateReserve(boolean newReserve) {
  if(newReserve && !roomAvail) {
    System.out.println("Sorry this room is taken")
 } else {
    roomAvail = !newReserve;
 }
}

不管我对你的问题有什么了解,这就是我想到的-

    public class Reservation {

    public static void main(String args[]) {
        Building building = new Building(20);
        boolean reserve= false;
         
        System.out.println("Which room would you like to reserve?");
  System.out.println(building);
  System.out.println("reserve: ");
  int reservNum = 2;

  building.reserveRoom(reserve, reservNum);
  System.out.println("Is Reserved?:"+building.getRoom(reservNum).getRoomAvail());
    }
    
}

class Building {
    
    Room room[];
    public Building(int numOfRooms) {
        room = new Room[numOfRooms];
        for(int i=0; i<numOfRooms; i++) {
            room[i] = new Room();
        }
    }
    public String toString() {
        return "This Building has "+room.length+"rooms";
    }
    public Room getRoom(int roomNum){
        return room[roomNum];
    }
public void reserveRoom (boolean reserve, int count)
{
    //class constant

    //class variables

    /*****************************************************/

    room [count].updateReserve(reserve);

} // end
}

class Room {
    boolean roomAvail;
    
    public boolean getRoomAvail() {
        return roomAvail;
    }
public void updateReserve(boolean newReserve)
{
    //class constant

    //class variables

    /*****************************************************/


    if (newReserve == false)
    {
        roomAvail = true;
    }
    else
    {
        roomAvail = false;
    }
} // END 
}
公共类预订{
公共静态void main(字符串参数[]){
建筑物=新建筑物(20);
布尔保留=假;
System.out.println(“您想预订哪个房间?”);
系统输出打印(建筑);
System.out.println(“reserve:”);
int reservNum=2;
建筑物.ReserverRoom(reserve,reservNum);
System.out.println(“是否保留?:”+building.getRoom(reservNum.getRoomAvail());
}
}
班级建设{
房间[];
公共建筑(室内){
房间=新房间[数量房间];

对于(int i=0;i如果我看了你的注释,你对作用域和基本知识的了解似乎就不一样了。你不能在一个方法中有类变量和类常量,你可以在那里使用它们,这是另一回事。@Stultuske我该如何调整我的代码以允许我正在尝试做的事情,或者我可以阅读某些东西来帮助我做出正确的更改我看过不同的帖子,看过几本关于布尔值的教科书,但仍然不能理解这一部分。所以我对你提供的代码做了一点修改,并通过我当前的测试使其正常工作。if(roomAvail){System.out.println(“抱歉,这个房间被占用”);}else{roomAvail=!newReserve;}