定向和访问成员变量

1. 辅助构造器通过 constructor 关键字定义

  1. 必须在辅助构造器内部调用主构造器(直接或间接通过其他辅助构造器)
  2. 一个类可以有多个辅助构造器,以适应不同的对象创建场景
  • 构造器的默认值
  • 必填项: 姓名, 年龄,
  • 有默认值的项
  • 性别:男
  • 民族:汉
scala 复制代码
object Base15 {
  
  class Student(var name: String, var age: Int, var gender: String = "男", var nav: String = "汉族") {

    def say(): Unit = {
      println(s"${name}, ${age}, ${gender}, ${nav}")
    }
  }

  def main (args: Array [String]): Unit
  =
  {
    // var s0 = new Student() // gender 和 nav 使用默认值
    var s1 =new Student("小明", 19) // gender 和 nav 使用默认值
    s1.say()

    var s2 =new Student("小花", 18, "女", "回族")
    s2.say()
  }
}
    • // 辅助构造器
  • // 名称一定是 this
  • // 在辅助构造器内部,一定要调用主构造器 this
  • // 可以有多个
scala 复制代码
object Base17 {
// 多种注册用户的方式 ---- 辅助构造器
// 1. 手机号 + 密码
// 2. 邮箱 + 密码 + 用户名
// 姓名class Register (val name: String, var email: String, var pwd: String, var phone: String) {

println ("主构造器被调用")

def this (phone: String, pwd: String) {
this ("随机用户 xxxxx", "xxxx@qq.com", pwd, phone)
// 调用主构造器
println ("辅助构造器被调用")}

def this (email: String, pwd: String, name: String) {this (name, email, pwd, "13600000000") 
// 调用主构造器
println ("辅助构造器被调用")}

def say (): Unit = {
println (s" 姓名: ${name},邮箱: ${email}, 密码: ${pwd}, 手机号: ${phone}")}
}

def main (args: Array [String]): Unit = {
//val r1 = new Register ("小明", "123123@qq.com", "123456", "13617885566")
// 调用辅助构造器
val r1 = new Register ("13617885566", "123456")
val r2 = new Register ("9456651@qq.com", "123456", "小明")

r1.say()
r2.say()


}

}
相关推荐
深兰科技2 天前
深兰科技受邀参与第二届中国(南宁)—东盟人工智能场景应用对接会,深化AI国际合作
人工智能·qt·r语言·scala·symfony·智能机器人·深兰科技
开开心心就好6 天前
低年级识字练笔顺工具,电脑和安卓端都能用
前端·javascript·网络·安全·scala·erlang·语音识别
开开心心就好8 天前
清理此电脑网盘图标工具,开源免费好用
网络·网络协议·tcp/ip·智能手机·电脑·scala·erlang
典典分享指南11 天前
用结构化数据管理产品知识库
scala·bash·batch·actionscript
Thomas214314 天前
scala 闭包
开发语言·后端·scala
江畔柳前堤14 天前
前台·中台·后台:2026年AI原生时代的架构全景图
开发语言·人工智能·算法·机器学习·架构·scala·ai-native
Thomas214322 天前
Java scala 数组 链表
java·链表·scala
江畔柳前堤24 天前
消息队列:从直觉到精通的完整认知地图
开发语言·人工智能·算法·机器学习·ruby on rails·scala
hopsky1 个月前
《Scala 学习手册》核心内容详解
人工智能·学习·scala
abcy0712132 个月前
scala playframework 搭建与新建controller教程
scala