1.定义:Scala跟Java的类基本一样,
Scala使用 class 关键字声明类
class 类名(){
}
2.声明类时 在参数列表中声明变量
ps:在声明 方法时候是不能在 参数列表中 声明变量的, 但是在创建类 时候是可以的
Java是不能在声明类时,直接在 类 参数列表中 创建对象的,但是Scala可以
Scala中类的主体 就是 一个构造器,称为主构造器,在主构造器的参数列表中 可以使用 val 或var 声明变量,这些变量会 自动成为类内部成员
ps: 如果在创建类时,在类的参数列表中 写了变量, 但是没有用 var或 val修饰,则该变量只是传值作用, Scala不会 为其创建为 内部对象,也不会生成 get/ set方法
ps: 伴生对象 是没有参数列表的,不能 在伴生对象的 参数列表中 声明变量,详见伴生对象章节
eg:
class myMethodTest(var var1:Int){
def outPutTest(): Unit ={
println(var1)
}
}
val test = new myMethodTest(1)
test.outPutTest()
输出:
2.1 在参数列表中生成的内部变量,系统会自动生成 该变量的get / set方法
eg2:
class People(var name:String){
def introduce(): Unit ={
println("my name is :", name)
}
}
val zhangs = new People("zhangsan")
zhangs.introduce()
println("get the people's old name ",zhangs.name) //调用 get 方法,获取name 属性
zhangs.name = "zhangXiaoSan" //调用 set方法,设置 name 属性
println("get the people's new name ",zhangs.name)
输出:
3.主构器 和 辅助构造器