第2课:Scala面向对象彻底精通及Spark源码阅读
本期内容:
1 Scala中的类、object实战详解
2 Scala中的抽象类、接口实战详解
3 综合案例及Spark源码解析
一:定义类
class HiScala{
private var name = "Spark"
def sayName(){
println(name)
}
def getName = name
}
Scala中,变量与类中的方法是同等级的,可以直接赋值给方法。
scala中的get与set与Java中的get,set有很大的差异:
在Scala中,如果程序中给变量或方法前面定义了private,那么scala会给这个变量或方法自动生成private的get和set方
法,如果程序中没有给变量或方法前面定义了private,那么scala会给这个变量或方法变成 private 级别的字段或方法,自动生成 public 级别的 的getter和setter方法。
创建类的对象
val scal = new Hiscala
scal.sayName()
scal.sayName//如果不传参时,等同上面
scal.getName
修改上面的类,并创建对象:
var name="Spark" //如果不加private,默认会生成一个public的get和set方法,外部可以调
println(scala.name) 可以打印出 name 的值。-->访问的是 自动生成的 public 级别的 getter 方法.
自定义 get/set
class Person{
private var myName = "Flink"