1.变量声明
Scala大部分变量事实上是指向对内存对象的引用。
Scala有两个关键字可以声明变量:val和var。
1.1. val:声明不可变变量。
array是一个引用,指向Array数组,由于它是不可变变量,所以它不能指向其他Array,但它所指向的Array中的元素是可变的。
1.2 var:声明可变变量。
1.3 val和var用在构造函数的参数中
定义一个Person类,构造方法中name和age两个参数,name是用val关键字声明,age是用var关键字声明。(符合人名不可变,年龄可变。)
2. Scala中的类
2.1 类构造方法
Scala的类可以有一个主构造器和多个辅助构造器。每个辅助构造器的名称为this,每一个辅助构造器都必须以调用已经定义的辅助构造器或主构造器开始定义。
主构造器放置在类名后,有括号括起来。
辅助构造器通过this来定义,且必须首先调用主构造器或者其他已经定义的辅助构造器。
/**
* Created by primecoder on 2017/4/22.
* E-mail : aprimecoder@gmail.com
*/
class Person(val name : String,var age : Int) {
var weight : Int = 0;
println("main constructor...");
def this(name :String,age : Int,weight : Int) {
this(name,age);
this.weight = weight;
}
}
object Test {
def main(args: Array[String]): Unit = {
val p1 = new Person("primecoder",27);
println(p1.name);
println(p1.age);
val p2 = new Person("priemcoder",28,68);
println(p2.weight);
}
}
2.2 Scala类中的对象(object)
main方法必须在object中定义。
使用object中的常量或方法,通过object名直接调用,对象构造器在对象第一次被使用时调用(如果某对象一直未被使用,那么其构造器也不会被调用)。
2.3 单例对象和伴生对象
Scala不能定义静态成员,而是可以定义单例对象,用object定义。
当单例对象与某个类共享同一个名称时,它就被称为是这个类的伴生对象(companion object)。类和它的伴生对象必须定义在同一个源文件中。
类被称为是这个单例对象的伴生类(companion class)。类和它的伴生对象可以互相访问其私有成员。
/**
* Created by primecoder on 2017/4/22.
* E-mail : aprimecoder@gmail.com
*/
class HelloWorld {
println(HelloWorld.init + HelloWorld.number());
}
object HelloWorld {
private val init = 1
def number() = {
1
}
def main(args: Array[String]): Unit = {
val hello = new HelloWorld;
}
}