java - 第二个输出必须为真,但显示为假

标签 java

我必须确定哪些房间更大,我的代码是:

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/

相关文章:

java - 为什么 Java 8 类型推断在重载选择中不考虑 Lambda 抛出的异常?

java - 按 onOptionsItemSelected 后保留编辑文本条目

Java 运行在 vscode 中无法运行

java - 使用 Java 以编程方式下载 CSV 文件

java - 为什么 PropertyPath 构造函数中的 propertyName 不遵循 Javabeans 规范?

java - Guice 辅助注入(inject)用于类型化类(class)

java - 多线程,Java 服务器/客户端项目

java - 使用 javapackager 将图标添加到 bundle

java - Kotlin - Jackson 忽略空值

java - 如果存在用户定义的构造函数,则无法使用默认构造函数