利用scala类与对象的定义机制,(1)自定义一个类,并实例化一个对象,然后设置并输出对象各数据成员的值。 (2)在此基础上,自定义两个辅助构造函数,调用并输出对象的数据成员值。
时间: 2024-09-19 22:12:48 浏览: 39
在Scala中,我们可以定义一个类来创建对象,并为其数据成员赋值。首先,让我们创建一个简单的`Person`类,包含姓名和年龄作为基本属性:
```scala
class Person(name: String, age: Int) {
// 数据成员
var nameValue: String = name
var ageValue: Int = age
// 定义一个方法来展示数据成员
def displayValues(): Unit = {
println(s"Name: $nameValue, Age: $ageValue")
}
}
```
接下来,我们实例化一个`Person`对象,并设置其数据成员的值:
```scala
val person = new Person("Alice", 30)
person.displayValues() // 输出: Name: Alice, Age: 30
```
现在,为了演示自定义辅助构造函数,我们可以添加两个额外的构造函数,接受不同的参数组合:
```scala
class Person(val fullName: String, var age: Int)(implicit val initialYear: Int = System.currentTimeMillis / 1000) {
// ... (其他部分保持不变)
// 辅助构造函数1:接受全名和默认年龄
def this(fullName: String)(implicit initialYear: Int) = this(fullName, 0)
// 辅助构造函数2:仅接受全名
def this(fullName: String)(implicit initialYear: Int, defaultAge: Int = 25) = this(fullName, defaultAge)
}
// 使用辅助构造函数
val personWithDefaultAge = new Person("Bob") // 默认年龄
val personWithoutAge = new Person("Charlie")(System.currentTimeMillis / 1000 - 18 * 365 * 24 * 60 * 60) // 年龄从当前时间减去18岁
```
现在,你可以分别调用它们并输出数据成员:
```scala
personWithDefaultAge.displayValues()
personWithoutAge.displayValues()
```
阅读全文