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中默认构造可以有参数
调用类会先走默认构造,即使默认构造有参数,也要走!!!!
原文:https://www.cnblogs.com/xiaoazheng/p/15018128.html