要深入学习大数据,spark,kafka是必须精通的,然而spark,kafka的源码都是用Scala写的,因此作为一个大数据工程师,Scala是必须精通,而且Scala语言有面向对象和函数式编程两大特点,相信熟悉之后一定会喜欢上它,Scala 用java语言写的,编译后生成在java字节码文件,所以运行Scala文件需要安装java虚拟机
1 伴生对象
其中伴生对象中的变量是静态变量,方法是静态方法
eg:
第一步 :新建Person类
class Person {
private val id = Person.newPersonId()
private var name = ""
def this(name:String){
this()
this.name = name
}
def info(): Unit ={
printf("The id of is %s id is %d \n",name,id)
}
}
// 伴生对象其实里面
object Person{
private var lastId =1
def newPersonId(): Int ={
lastId+=1;
lastId
}
def main(args: Array[String]): Unit = {
val personq = new Person();
val person2 = new Person();
personq.info();
person2.info()
}
第二部:scalac -Person.scala
第三步 :javap -Person
public class com.test.Person {
public static void main(java.lang.String[]);
public static int newPersonId();
public void info();
public com.test.Person();
public com.test.Person(java.lang.String);
}
二 :继承 与特质 Scala中没有接口,我们可以通过Scala特有的‘特质’ with +特质类似于java中的多实现,只是特质中的方法可以包括具体的实现
class CarBwn extends Car with CarSize