C语言Scala定义一个类Person,定义name和age属性,定义有参的构造方法对name和age进行初始化。在测试类中创建该类的2个对象,姓名、年龄分别为lili、19和lucy、20,在屏幕打印出2个对象的姓名和年龄。
时间: 2024-10-24 09:03:53 浏览: 31
在C语言中,Scala并不是直接支持类的概念,因为Scala更偏向于函数式编程,但它可以在Scala语法下创建类似类的行为。如果你想要创建一个模拟类Person的结构,你可以使用case class关键字,类似于C#或Java的类定义。以下是相应的代码:
```scala
// 定义名为Person的case class
case class Person(name: String, age: Int) {
// 构造方法用于初始化name和age
def this() = this("", 0)
}
// 测试类
object Main {
// 创建两个Person对象
val person1 = Person("lili", 19)
val person2 = Person("lucy", 20)
// 打印对象的姓名和年龄
println(s"Person 1: Name - $person1.name, Age - $person1.age")
println(s"Person 2: Name - $person2.name, Age - $person2.age")
}
```
当你运行Main对象时,它会在控制台上输出每个Person对象的姓名和年龄。
相关问题
用scala定义一个类Person,定义name和age属性,定义有参的构造方法对name和age进行初始化。在测试类中创建该类的2个对象,姓名、年龄分别为lili、19和lucy、20,在屏幕打印出2个对象的姓名和年龄。
在Scala中,你可以定义一个名为`Person`的类,它包含`name`和`age`两个属性以及一个有参构造函数来进行初始化。以下是详细的步骤:
```scala
// 定义 Person 类
class Person(val name: String, var age: Int) {
// 构造方法
def this() = this("未知", 0) // 默认无参数构造函数
}
// 测试类,用于创建并操作 Person 对象
object TestPerson {
def main(args: Array[String]): Unit = {
// 创建第一个对象 lili
val person1 = new Person("lili", 19)
// 创建第二个对象 lucy
val person2 = new Person("lucy", 20)
// 打印对象信息
println(s"Person 1: Name - $person1.name, Age - $person1.age")
println(s"Person 2: Name - $person2.name, Age - $person2.age")
}
}
```
当你运行这个`TestPerson`主程序时,它会在屏幕上分别打印出 `Person 1: Name - lili, Age - 19` 和 `Person 2: Name - lucy, Age - 20`。
利用scala类与对象的定义机制,(1)自定义一个类,并实例化一个对象,然后设置并输出对象各数据成员的值。 (2)在此基础上,自定义两个辅助构造函数,调用并输出对象的数据成员值
在Scala中,我们可以定义一个类来创建对象,并利用其特性进行操作。下面是一个简单的例子:
```scala
// 自定义一个名为Person的类,包含姓名和年龄两个属性
class Person(val name: String, var age: Int) {
// 构造函数初始化对象时设置数据成员
override def toString(): String = s"Name: $name, Age: $age"
// 设定并输出数据成员值的方法
def displayProperties() = println(this.toString())
}
// 实例化一个Person对象
val person1 = new Person("Alice", 30)
// 设置和输出对象数据成员
person1.age = 31 // 可以动态修改数据成员
person1.displayProperties() // 输出 "Name: Alice, Age: 31"
// 现在我们定义两个辅助构造函数,通过名称和默认年龄来简化创建对象
class PersonWithDefaultAge(name: String)(implicit val defaultAge: Int = 18) extends Person(name, defaultAge) {
override def displayProperties() = println(s"Name: $name, Age: ${super.age}")
}
// 使用第二个构造函数实例化对象
val person2 = new PersonWithDefaultAge("Bob")
person2.displayProperties() // 输出 "Name: Bob, Age: 18"
```
在这个例子中,`Person`类有两个基本的构造函数,一个带有两个参数,另一个接受一个字符串作为姓名并隐式接收一个默认年龄。通过这两个构造函数,我们可以方便地创建并初始化不同情况下的Person对象。
阅读全文