scala 类和对象 样例类 类的继承
类和对象
package scala object Demo9Class { def main(args: Array[String]): Unit = { /** * 类和对象 * */ val student = new Student(1, "张三") println(student._name) println(student.getId()) println(student) System.out.println(student) val lisi = new Student(2, "李四", 24) println(lisi) } } /** * 类中可以定义属性,方法,构造函数 * * * scala 的类有一个默认构造函数,默认构造函数可以有参数 * */ class Student(id: Int, name: String) { println("默认构造函数") //定义属性并赋值 //private 属性私有化 private val _id: Int = id val _name: String = name // 下划线 占位符,没有实际意义,只是起到占位置的功能 var _age: Int = _ //定义方法 def getId(): Int = { return _id } //省略 //def getId: Int = _id //override 方法重写 override def toString: String = { "Student(" + _id + "," + _name + "," + _age + ")" } /** * 重载构造函数 * * 再重载构造函数的第一行需要显示调用默认构造函数 * */ def this(id: Int, name: String, age: Int) { //调用默认构造函数 this(id, name) //给属性赋值 this._age = age } }
样例类
package scala object Demo10CaseClass { def main(args: Array[String]): Unit = { val user = new User("001","张三") println(user) println(user.id) println(user.name) //修改属性 user.name="李四" //样例类创建对象可以不用new val user1 = User("002","李四") println(user1) } /** * 样例类 * scala编译器在编译的时候会动态给样例类增加很多方法(toString,hashCode,序列化,属性) * * 属性和参数是一样的 *属性默认是val,是不可变的,改成val,就可以修改了 * * */ case class User(id:String,var name:String ) }
类的继承
package scala object Demo11EX { def main(args: Array[String]): Unit = { val a = new A("001","张三") a.print() val lisi = new B("003","李四",24) lisi.print() } } class A(id:String,name:String){ println("A的默认构造函数") val _id :String =id val _name:String=name def print(): Unit ={ println(_id+"\t"+_name) } } /** * 类的继承,会继承父类的属性和方法 * 继承的时候调用父类的构造函数 * * */ class B(id:String,name:String,age:Int) extends A(id,name){ println("B的默认构造函数") val _age :Int=age }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能