利用SCALA类与对象的定义机制 自定义一个类,并实例化一个对象,然后设置并输出对象各数据成员的值 在此基础上,自定义两个辅助构造函数,调用并输出对象的数据成员值
时间: 2024-09-18 19:09:24 浏览: 39
Scala是一种基于JVM的静态类型编程语言,它支持面向对象编程。为了自定义一个类、实例化对象、设置和输出数据成员,我们可以按照以下步骤进行:
首先,我们定义一个名为`Person`的类,包含姓名和年龄这两个属性作为数据成员:
```scala
class Person(val name: String, var age: Int)
```
这里,`val`用于定义不可变的数据成员(姓名),而`var`用于定义可变的数据成员(年龄)。
接下来,我们创建一个`Person`类的实例:
```scala
val person = new Person("张三", 30)
```
现在我们有了一个名为`person`的对象。
要设置并输出数据成员,可以直接操作对象的属性:
```scala
person.age = 31 // 修改年龄
println(s"Name: ${person.name}, Age: ${person.age}")
```
这将输出`Name: 张三, Age: 31`。
接着,我们定义两个辅助构造函数(也称为工厂方法)。一个接受名字作为参数,另一个接受全名(包括姓氏和名字):
```scala
def createWithName(name: String): Person = {
new Person(name, 0) // 默认年龄为0
}
def createWithFullName(fullName: String): Person = {
val (firstName, lastName) = fullName.split(" ")
new Person(firstName, 0) // 再次默认年龄为0
}
```
最后,我们可以分别使用这两种方法创建新的`Person`对象:
```scala
val personByName = createWithName("李四")
val personByFullName = createWithFullName("王五 王五")
// 输出新的对象数据成员
println(s"Person by Name: Name: ${personByName.name}, Age: ${personByName.age}")
println(s"Person by FullName: Name: ${personByFullName.name}, Age: ${personByFullName.age}")
```
阅读全文