我必须确定哪些房间更大,我的代码是:
public class Apartment {
private int room;
private int squareMeters;
private int pricePerSquareMeter;
public Apartment(int rooms, int squareMeters, int pricePerSquareMeter) {
this.room = room;
this.squareMeters = squareMeters;
this.pricePerSquareMeter = pricePerSquareMeter;
}
public boolean larger(Apartment otherApartment) {
if (this.room > otherApartment.room) {
return true;
}
return false;
}
public static void main(String[] args) {
Apartment studioManhattan = new Apartment(1, 16, 5500);
Apartment twoRoomsBrooklyn = new Apartment(2, 38, 4200);
Apartment fourAndKitchenBronx = new Apartment(3, 78, 2500);
System.out.println(studioManhattan.larger(twoRoomsBrooklyn));
System.out.println(fourAndKitchenBronx.larger(twoRoomsBrooklyn));
}
}
输出:
false
false
如您所见,第一个输出是假的,没关系,第二个也是假的,但是当我们阅读这些代码时,我们很容易看出第二个房间一定是真的。在这个练习中,我们应该得到如下输出:
false
true
你能解释一下我错在哪里吗?我可以通过哪些方式获得正确的输出?
最佳答案
你应该改变
public Apartment(int rooms, int squareMeters, int pricePerSquareMeter) {
this.room = room; // Same as this.room = this.room, no effect at all.
this.squareMeters = squareMeters;
this.pricePerSquareMeter = pricePerSquareMeter;
}
到
public Apartment(int rooms, int squareMeters, int pricePerSquareMeter) {
this.room = rooms; // Typo was here.
this.squareMeters = squareMeters;
this.pricePerSquareMeter = pricePerSquareMeter;
}
关于java - 第二个输出必须为真,但显示为假,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41715150/