Scala完全面向对象,故Scala去掉了Java中非面向对象的元素,如static关键字,void类型
1)static
Scala无static关键字,由object实现类似静态方法的功能(类名.方法名)。
2)void
对于无返回值的函数,Scala定义其返回值类型为Unit类
class关键字和Java中的class关键字作用相同,用来定义一个类
Java程序:
public class Student {
private String name;
private Integer age;
private static String school = "atguigu";
public Student(String name, Integer age) {
this.name = name;
this.age = age;
}
public void printInfo(){
System.out.println(name + " " + age + " " + Student.school);
}
public static void main(String[] args) {
Student alice = new Student("alice", 20);
Student bob = new Student("bob", 23);
alice.printInfo();
bob.printInfo();
}
}
Scala程序:
class Student(name:String, age:Int) {
def printInfo(): Unit = {
println(name + " " + age + " " + Student.school)
}
}
//引入伴生对象,名字必须一样、必须放同一文件
object Student{
//val 表示值不可变
val school: String = "atguigu"
//main必须放在伴生对象里才能执行
def main(args: Array[String]): Unit = {
val alice = new Student("alice", 20)
val bob = new Student("bob", 23)
alice.printInfo()
bob.printInfo()
}
}