3000门徒内部训练绝密视频(泄密版)第2课:Scala面向对象彻底精通及Spark源码阅读

Scala面向对象彻底精通及Spark源码阅读

不用写public class中的public

class Person {
     private var myName = "flink"
     def name = this.myName
     def name_=(newName:String){ //重载?
  myName = newName
     println("Hi " + this.myName)
     }
}

class Person {
     private var myName = "flink"
     def name = this.myName
     def update(newName : String){
  myName = newName
     println("Hi " + this.myName)
     }
}

重要:private[this]
//对象私有,不能被其他对象访问

class Person {
     private var myName = "flink"
     def name = this.myName
     def update(newName : String){
  myName = newName
     println("Hi " + this.myName)
     }
  def talk(p:Person) = {
  println("Hello "+ p.name)
  }
}

scala> val p1 = new Person
p1: Person = Person@13cd7ea5

scala> val p2 = new Person
p2: Person = Person@c4c0b41

scala> p2.update("Spark")
Hi Spark

scala> p1.talk(p2)
Hello Spark

scala> p2.talk(p1)
Hello flink
class Person {
     private[this] var Name = "flink"

     def update(newName : String){
     println("Hi ")
     }
  def talk(p:Person) = {
  println("Hello "+ p.name)
  }
}
<console>:14: error: value name is not a member of Person
       println("Hello! " + p.name)
                             ^
//不能被其他对象访问。

//重载构造器
//默认构造器在类定义内,任何非def的都将执行

class Person {
    var name = "flink"
    var age = 10

     def update(newName : String){
     println("Hi ")
     }
 def this(name: String){
 this()//必须调用一个其他构造器
 this.name = name
 }
 def this(name: String, age:Int){
 this(name)//必须调用一个其他构造器
 this.age = age
 }
}
//Scala 的内部类的不同内部类为不同类型

object
定义类后同时定义object存放静态成员和方法,为伴生对象,它的构造器不接受参数,只在第一次调用执行一次

object Person {
var salary = 0.0
println("Scala")
def getSalary = salary
}

apply是当前类的对象的工厂方法

程序入口在object内的main方法def main(argStrings:Array[String]) {}

抽象类

重写父类要加override,重写父类的抽象方法必须加override关键字

抽象属性,不给值,需要覆盖

trait?接口?

DAGScheduler 是一个至关重要的类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值