Scala语言特点
- Scala是一门以Java虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言(静态语言需要提前编译的如:Java、c、c++等,动态语言如:js)。
- Scala是一门多范式的编程语言,Scala支持面向对象和函数式编程。(多范式,就是多种编程方法的意思。有面向过程、面向对象、泛型、函数式四种程序设计方法。)
- Scala源代码(.scala)会被编译成Java字节码(.class),然后运行于JVM之上,并可以调用现有的Java类库,实现两种语言的无缝对接。
我的第一段Scala代码
//main方法名
//小括号表示参数列表
/*参数声明方式∶
java ->类型参数名
scala ->参数名∶类型
*/
//public修饰符∶scala中没有public关键字,如果不声明访问权限,那么就是公共的。
//static修饰符∶scala中没有静态语法,所以没有static关键字。
//void关键字∶表示返回值,但是不遵循面向对象语法,所以scala中没有,但是有Unit类型,表示没有返回值
//scala中∶方法名(参数列表)∶返回值类型
//scala中声明方法必须采用关键字def声明
//scala中方法实现赋值给方法声明,所以中间需要等号连接
//Scala是一个完全面向对象的语言,所以没有静态语法,为了能调用静态语法(模仿静态语法),
//采用伴生对象单例的方式调用方法
package com.exceeddata.chapter01
object Hello {
def main(args: Array[String]): Unit = {
println("hello scala")
} }
Scala完全面向对象,故Scala去掉了Java中非面向对象的元素,如static关键字,void类型
1. static
Scala无static关键字,由object实现类似静态方法的功能(类名.方法名)。
class关键字和Java中的class关键字作用相同,用来定义一个类;
2. void
对于无返回值的函数,Scala定义其返回值类型为Unit类
我的第二段Scala代码
package chapter01
class Student(name: String,age: Int) {
def printInfo(): Unit = {
println(name + " " + age + " " + Student.school)
}
}
//引入伴生对象
object Student{
val school: String = "ExceedData"
def main(args: Array [String]) : Unit = {
val alice = new Student( name = "alice" ,age = 20)
alice.printInfo()
}
}
输出结果:alice 20 ExceedData