44、在帆船类(Sailboat)和摩托艇类(Motorboat)中分别添加一个名为 signal 的方法,该方法创建一个 Flare 对象并调用 Flare 对象的 light 方法。满足以下条件:创建一个 Sailboat2 类的对象 sailboat2,调用其 signal 方法并将结果赋值给 signal,使用断言确保 signal 的值为“Flare used!”;创建一个 Motorboat2 类的对象 motorboat2,调用其 signal 方法并将结果赋值给 flare2,使用断言确保 flare2 的值为“Flare used!”。
以下是满足需求的 Scala 代码示例:
// 定义 Flare 类
class Flare {
def light: String = "Flare used!"
}
// 定义 Sailboat2 类
class Sailboat2 {
def signal(): String = {
val flare = new Flare
flare.light
}
}
// 定义 Motorboat2 类
class Motorboat2 {
def signal(): String = {
val flare = new Flare
flare.light
}
}
// 测试代码
val sailboat2 = new Sailboat2
val signal = sailboat2.signal()
assert(signal == "Flare used!", "Expected Flare used! Got " + signal)
val motorboat2 = new Motorboat2
val flare2 = motorboat2.signal()
assert(flare2 == "Flare used!", "Expected Flare used!, Got " + flare2)
45、使用反向域名标准重命名 royals 包。使用 scalac 进行编译,并在计算机上创建一个目录层次结构来存放这些类。修改 ImportRoyalty.scala 文件并保存为 ImportTests.scala 。更新包导入语句以使用新的类。确保测试能正常运行。
首先,将 TheRoyalty.scala 文件中的
package royals
改为
package com.atomicscala.royals
接着,使用 scalac 编译该文件:
scalac TheRoyalty.scala
编译完成后,会生成相应的目录层次结构 com/atomicscala/royals 来存放类文件。
然后,修改 ImportRoyalty.scala 文件,将其保存为 ImportTests.scala ,并更新导入语句,把
import royals.Royalty
改为
import com.atomicscala.royals.Royalty
最后,运行 ImportTests.scala 以确保测试正常运行:
scala -nocompdaemon ImportTests.scala
46、在一个Scala程序中,添加另一个类Crest。为该类的构造函数传入一个名称(字符串类型)和一个年份(字符串类型)。创建一个方法description,当名称为“Bear”且年份为“1875”时,该方法返回“Bear in the year 1875”。
以下是Scala代码实现:
class Crest(var name: String, var year: String) {
def description: String = s"$name in the year $year."
}
你可以使用以下代码测试该类:
val crest = new Crest("Bear", "1875")
println(crest.description) // 输出: Bear in the year 1875.

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



