5.8 小测验
(1) Scala是纯粹的OOP和函数式编程语言吗?
a) 是的,Scala是纯粹的OOP语言,也是纯粹的函数式编程语言。
b) 否,Scala是纯粹的OOP语言,但不是纯粹的函数式编程语言。
c) 否,Scala是纯粹的函数式编程语言,但不是纯粹的OOP语言。
d) 否,Scala既不是纯粹的OOP语言,也不是纯粹的函数式编程语言。
(2) 下面的代码能够通过编译吗?如果不能,请说明原因。
class A { def method1 = {} }trait B { def method2 }trait C { def method3 }abstract class D extends A with B with C { }
a) 是的,这些代码能够通过编译并正确地运行。
b) 否,要实现特质,必须使用关键字implements。
c) 否,D类没有实现A类和/或特质B和C的方法。
d) 答案b和c都对。
(3) 下面的类定义有什么问题?
public class A
a) 这个类能够通过编译,没有任何问题。
b) 这个类不能通过编译,因为没有指定类体(= { })。
c) 这个类不能通过编译,因为Scala中没有访问限定符public。
d) 答案b和c都对。
(4) 在函数式编程中,哪种设计模式最适合用来计算只包含Int值的数组的元素和?
a) 映射设计模式。
b) 过滤设计模式。
c) 归约设计模式。
d) 以上答案都不对。
(5) 在多线程程序中,对单例对象的可修改变量进行修改是安全的吗?
a) 是的,这种说法完全正确,因为Scala会确保每个线程都有自己的单例数据副本。
b) 不对,对于多个线程使用的单例对象,对其可修改的变量进行修改是不安全的。
