1 类
1.1 构造器
1、Scala中和类名相同的方法并不是构造器
2、通过分析,scala的其中一个构造器就在类名后面,因为是无参的,所以默认省略的(),也就是参数列表
- 方法体:scala类的构造器函数体和类的定义交织在一起
- 可不可以拥有其他的构造器:用
this
关键字代替类名进行构造
3、归纳
- scala的构造器有两种,一种是在类名后面定义的(主构造器),一种是在类中使用this关键字定义(辅助构造器)
- 辅助构造器的第一句话必须要调用本类的主构造器或者其他辅助构造器
class Teacher(){
private var name:String = _
private var age:Int = _
def this(name:String,age:Int){
this()
this.name=name
this.age=age
}
}
- 有参主构造器
class Teacher(name:String,age:Int){
var n = name
var a = age
}
1.2 内部类
object TestScala {
def main(args: Array[String]): Unit = {
val outer1 = new outer
val in = new outer1.Inner()
in.show()
}
}
class outer{ out => //代表本类对象的引用
val x = 5
class Inner{ in => //代表本类对象的引用
val x = 6
def show(): Unit ={
val x = 7
println(x)
println(this.x)
println(outer.this.x)
println(in.x)
println(out.x)
}
}
}
2 对象
2.1 Object对象
1、想要Scala提供static方法必须使用object结构
2、Scala中object中定义的成员类似于java中的静态成员也就是直接可以通过类名.
调用
3、主要作用:
给scala类提供程序运行入口,静态的main函数
给scala类也能够提供静态成员——scala类的伴生对象来实现
2.2 单例对象
单例:本类只能创建一个对象,表示全局仅有一个对象
object a {
}
2.3 伴生对象
在Java中,我们经常需要用到同时包含实例方法和静态方法的类,在Scala中可以通过伴生对象来实现。
当单例对象与某个类具有相同的名称时,它被称为这个类的“伴生对象”。类和它的伴生对象必须存在于同一个文件中,而且可以相互访问私有成员(字段和方法)。