-2

我创建了一个扩展到 Counter 的类,它跟踪加法和减法。我试图调用 xs,然后返回 xs 在实例上调用的数字上升或下降的总和,它正在编译但它失败了。

class Counter {
    private var n = 0
    def increment () = { n = n + 1 }
    def decrement () = { n = n - 1 }
    def get () : Int = n
}

def x (xs : Counter => Unit) : Int = {
    class foo extends Counter {
        var count = 0
        def incrementAndGet = {count += 1; count}
        def decrementAndGet = {count -= 1; count}
    }

    val counter1 = new foo
    xs(counter1)
    counter1.incrementAndGet
    counter1.decrementAndGet
}

谢谢大家,我真的可以通过了。我需要创建另一个变量来跟踪我的增量和减量,然后在 def inc 和 def dec 中,我将添加到 count 的 add 或减去 :)

4

1 回答 1

0

我建议你先看看 Java 设计模式和最佳实践。您的 foo 类并没有真正扩展 counter,因为它不会隐藏或覆盖任何东西。此外,您应该使用单例(对象计数器...)来跟踪您的加法和减法。祝你好运。

于 2017-03-13T10:22:37.487 回答