当前位置: 首页 > news >正文

建设网站建设费用建网站找哪家好

建设网站建设费用,建网站找哪家好,网站开发要花费多少钱,建网站需要买些什么文章目录前言1.主构造函数示例2.带辅助构造函数的样例类举例3.带默认参数的主构造函数 vs 辅助构造函数 举例其他举例前言 提示:主要对基础的scala样例类使用做一些说明: 1.主构造函数示例 // 主构造函数样例类 case class Person(name: String, age: …

文章目录

  • 前言
  • 1.主构造函数示例
  • 2.带辅助构造函数的样例类举例
  • 3.带默认参数的主构造函数 vs 辅助构造函数 举例
  • 其他举例


前言

提示:主要对基础的scala样例类使用做一些说明:


1.主构造函数示例

// 主构造函数样例类
case class Person(name: String, age: Int) {println(s"主构造函数创建:$name, $age岁")
}object Main1 {def main(args: Array[String]): Unit = {val p = Person("Alice", 25) // 自动调用主构造函数println(s"输出:${p.name}的年龄是${p.age}")}
}

输出:

主构造函数创建:Alice, 25岁
输出:Alice的年龄是25

2.带辅助构造函数的样例类举例

// 主构造函数+辅助构造函数
case class Book(title: String, author: String, price: Double) {// 辅助构造函数1(通过this定义)def this(title: String) = {this(title, "未知作者", 0.0)println(s"辅助构造函数1创建:仅标题《$title》")}// 辅助构造函数2def this(title: String, author: String) = {this(title, author, 50.0) // 必须优先调用主构造函数println(s"辅助构造函数2创建:《$title》- $author")}
}object Main2 {def main(args: Array[String]): Unit = {val b1 = Book("Scala编程")             // 调用辅助构造函数1val b2 = Book("Java核心", "James")     // 调用辅助构造函数2val b3 = Book("Python入门", "Guido", 39.9) // 调用主构造函数println(s"对比输出:\n" +s"b1: ${b1.title}|${b1.author}|${b1.price}\n" +s"b2: ${b2.title}|${b2.author}|${b2.price}\n" +s"b3: ${b3.title}|${b3.author}|${b3.price}")}
}

​​输出​​:

辅助构造函数1创建:仅标题《Scala编程》
辅助构造函数2创建:《Java核心》- James
对比输出:
b1: Scala编程|未知作者|0.0
b2: Java核心|James|50.0
b3: Python入门|Guido|39.9

3.带默认参数的主构造函数 vs 辅助构造函数 举例

代码如下(示例):

// 默认参数主构造函数
case class Student(name: String, grade: Int = 1, school: String = "第一中学") {println(s"主构造函数:$name 在 $school 读 $grade 年级")
}// 辅助构造函数版本
case class Teacher(name: String, subject: String, years: Int) {def this(name: String) = {this(name, "未分配科目", 0)   //注意这里调用主构造函数  println(s"辅助构造函数:新教师$name")}
}object Main3 {def main(args: Array[String]): Unit = {val s1 = Student("小明")                   // 使用默认参数val s2 = Student("小红", 3, "实验中学")     // 覆盖所有参数val t1 = new Teacher("张老师")             // 调用辅助构造函数val t2 = Teacher("李老师", "数学", 10)      // 调用主构造函数println(s"学生对比:${s1.grade} vs ${s2.grade}")println(s"教师对比:${t1.subject} vs ${t2.subject}")}
}

输出:

主构造函数:小明 在第一中学读1年级
主构造函数:小红 在实验中学读3年级
辅助构造函数:新教师张老师
学生对比:1 vs 3
教师对比:未分配科目 vs 数学

*​​辅助构造函数必须首行调用主构造函数或其他辅助构造函数​​(如 this(…)),这是 Scala 的强制语法规则.
强制调用顺序​​:
辅助构造函数的​​第一行代码​​必须调用主构造函数或其他已定义的辅助构造函数。若违反此规则,编译器会直接报错。
​​原因​​:Scala通过这种方式确保所有构造路径最终都会调用主构造函数,从而统一对象的初始化逻辑。
​​间接调用主构造函数​​:
即使辅助构造函数首次调用的是其他辅助构造函数,最终也必须通过链式调用传递到主构造函数。例如:

class Person(name: String) { // 主构造函数def this() = this("Anonymous")      // 辅助构造函数1 → 调用主构造函数def this(name: String, age: Int) = { // 辅助构造函数2 → 调用辅助构造函数1this() // 间接调用主构造函数println(s"Name: $name, Age: $age")}
}

其他举例

代码示例:    
case class Person(name: String, age: Int) {// 辅助构造函数1:仅接受name参数,age默认为0def this(name: String) = this(name, 0)// 辅助构造函数2:接受出生年份,动态计算年龄def this(birthYear: Int) = this("Unknown", 2025 - birthYear)
}
// 使用示例
val person1 = Person("Alice", 25)      // 主构造器               -重点
val person2 = new Person("Bob")        // 辅助构造器1(需用new)  -重点
val person3 = new Person(1990)         // 辅助构造器2(需用new)  -重点

举例另一种例子

case class Person(name: String, age: Int) {// 辅助构造函数:通过另一个Person对象初始化def this(other: Person) = this(other.name, other.age + 1)  // 年龄+1作为差异
}// 使用示例
val person1 = Person("Alice", 25)       // 主构造器
val person2 = new Person(person1)      // 辅助构造器(需用new)  -重点
println(person2)                       // 输出: Person(Alice,26)    
http://www.dtcms.com/a/485452.html

相关文章:

  • 抚顺网站建设公司企业公示信息查询系统全国官网
  • 加盟网官方网站酷家乐在线设计官网
  • 平面设计师必看的网站烟台龙口网站建设
  • 网站备案注销流程wordpress面包学
  • 电商网站建设网内容网站模板
  • 泰州网站建设黄页企业名录
  • 杭州网站设计成功柚v米科技网站建设销售合同
  • 网站建设图片怎么调如何做网站商铺
  • 企业网站哪家做的好沛县网络营销是什么
  • 网站怎么优化seo007工作制
  • 站长统计app最新版本2023网站设计技术
  • diy学做衣服网站刘强东当年做网站读的什么书
  • 贵阳市城乡建设厅网站营销型网站源码
  • 网站的建设ppt模板服务器与网站吗
  • vs网站模态框怎么做关于公司网站建设情况的汇报
  • 手机版网站 html5成功的企业网站案例
  • 网站建设商城 买模板长沙公司做网站
  • 购物商城网站开发公司网站建设验收报告模板
  • ppt接单兼职网站广州旅游网络营销
  • 安徽茶叶商城网站建设易天时代网站建设
  • 网站建设教学设计小米手机网站架构
  • 网站建设金手指霸屏化工网站开发
  • 热烈祝贺网站上线银川网站建设推广
  • 家具网站开发ip形象设计排版
  • 交互式网站开发技术长春做网站网站
  • 福州网站设计知名乐云seo顺德购物网站建设
  • 2014年沈阳建设银行网站极验 wordpress 表单
  • 物流网站的建设论文在线制作图片的免费软件
  • 广西医疗网站建设网站广告图片设计教程
  • 建筑网站设计大全网页平台制作流程