1.今天讲一下scala的类
类中可以定义属性,方法,构造函数scala类中也是一样的
而在scala的类有一个默认构造函数,而默认的构造函数可以有参数的 注意这是与Java中的不同点
我们现在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 } //override 方法重写 override def toString: String = { "Student(" + _id + "," + _name + "," + _age + ")" } /** * 重载构造函数 * * 再重载构造函数的第一行需要显示调用默认构造函数 * */ def this(id: Int, name: String, age: Int) { //调用默认构造函数 (会调用有参的默认构造) this(id, name) //给属性赋值 this._age = age } }
object Demo9Class { def main(args: Array[String]): Unit = { val student = new Student(1, "张三") println(student._name) System.out.println(student) val lisi = new Student(2, "李四", 24) println(lisi) } }
注意:在scala中默认构造可以有参数
调用类会先走默认构造,即使默认构造有参数,也要走!!!!