利用scala类与对象的定义机制,(1)自定义一个类,并实例化一个对象,然后设置并输出对象各数据成员的值。 (2)在此基础上,自定义两个辅助构造函数,调用并输出对象的数据成员值。
时间: 2024-09-13 08:06:38 浏览: 42
在Scala中,你可以通过下面的方式来定义一个类、创建对象以及自定义构造函数:
首先,让我们定义一个名为`Person`的简单类,包含姓名和年龄这两个数据成员:
```scala
class Person(val name: String, var age: Int) {
def displayInfo(): Unit = {
println(s"Name: $name, Age: $age")
}
}
```
在这里,我们定义了一个带有一个不可变的`name`字段和一个可变的`age`字段的类,还定义了一个`displayInfo`方法用于打印信息。
接下来,我们可以实例化这个类并设置其属性值:
```scala
val person = new Person("Alice", 30)
person.displayInfo() // 输出:Name: Alice, Age: 30
```
现在,我们再定义两个辅助构造函数。一个接受名字作为参数,另一个接受姓名和年龄:
```scala
class Person(name: String)(age: Int) extends Person(name, age) {
override def displayInfo(): Unit = {
super.displayInfo() // 调用父类的 displayInfo 方法
println("This is an overloaded constructor.")
}
}
// 使用第一个辅助构造函数
val personWithConstructor = new Person("Bob")
// 使用第二个辅助构造函数
val personWithParams = new Person("Charlie")(40)
```
当你创建 `personWithConstructor` 或者 `personWithParams` 的时候,会分别调用相应的构造函数并且调用 `displayInfo` 方法。
最后,输出结果:
```scala
personWithConstructor.displayInfo() // Name: Bob, Age: ??? (未指定),This is an overloaded constructor.
personWithParams.displayInfo() // Name: Charlie, Age: 40, This is an overloaded constructor.
```
阅读全文