如果使用方法满足条件,则从现有数组中递减一个值 - OOP
Decrement a value from an existing array if a condition has met using a method - OOP
我正在尝试为 LIBRARY 练习创建一个方法,但是,我对该方法有一些问题
租书()。
基本上,我使用一种方法来添加我想租的书,当使用我的代码时,它会递减 -1 所有库存而不是选择一个。
代码:
public String rentBook(Book book) {
for (int i = 0; i < books.length; i++) {
if ((books[i].equals(book)))
inStock[i]--;
}
return "book name" + book;
}
}
我的等于函数:
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Book other = (Book) obj;
if (id != other.id)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (Double.doubleToLongBits(price) != Double.doubleToLongBits(other.price))
return false;
return true;
}
我得到的:
[11, 39, 43, 1, 12, 3]
我想要的:
[12, 39, 44, 2, 13, 4]
尝试调试您的程序。
- 在
equals
方法中加入一些打印语句来打印您正在比较的两本书,看看是否是您想要比较的方式?在逻辑中的不同位置打印它们并相应地标记它们。
- 使用一些特制的
book
对象来测试各种 equals
条件。
- 并在每次递减后打印
instock
值。
最好的调试工具之一是 print
语句。自由使用它。
我正在尝试为 LIBRARY 练习创建一个方法,但是,我对该方法有一些问题 租书()。 基本上,我使用一种方法来添加我想租的书,当使用我的代码时,它会递减 -1 所有库存而不是选择一个。
代码:
public String rentBook(Book book) {
for (int i = 0; i < books.length; i++) {
if ((books[i].equals(book)))
inStock[i]--;
}
return "book name" + book;
}
}
我的等于函数:
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Book other = (Book) obj;
if (id != other.id)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (Double.doubleToLongBits(price) != Double.doubleToLongBits(other.price))
return false;
return true;
}
我得到的:
[11, 39, 43, 1, 12, 3]
我想要的:
[12, 39, 44, 2, 13, 4]
尝试调试您的程序。
- 在
equals
方法中加入一些打印语句来打印您正在比较的两本书,看看是否是您想要比较的方式?在逻辑中的不同位置打印它们并相应地标记它们。 - 使用一些特制的
book
对象来测试各种equals
条件。 - 并在每次递减后打印
instock
值。
最好的调试工具之一是 print
语句。自由使用它。