scala安装
1、安装scala-2.11.8.msi 设置安装路径为D:\ProgramFile\scala
2、环境变量
SCALA_HOME
D:\ProgramFile\scala
Path
%SCALA_HOME%\bin
3、验证
scala、java、jvm关系图
scala语言特点
scala是一门以java虚拟机(jvm)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言。
1、scala是一门多范式的编程语言,支持面向对象和函数式编程
2、scala源代码(.scala)会被编译成java字节码文件(.class),然后运行于jvm之上,并可以调用现有的java类库,实现两种语言的无缝对接
3、scala作为一门语言,非常的简洁高效
scala源文件和运行
HelloScala.scala
object HelloScala{
def main(args:Array[String]): Unit ={
println(“HelloScala”)
}
}
反编译工具
HelloScala.class–伴生类
程序执行的入口
public final class HelloScala
{
public static void main(String[] paramArrayOfString)
{
HelloScala..MODULE$.main(paramArrayOfString);
}
}
HelloScala$.class—单例模式饿汉式
伴生对象的所属类
实现java的static功能
import scala.Predef.;
public final class HelloScala$
{
public static final MODULE$;
static
{
new ();
}
public void main(String[] args)
{
Predef..MODULE$.println("HelloScala");
}
private HelloScala$() { MODULE$ = this; }
}
scala在idea中编写
idea离线安装插件
1、准备安装包scala-intellij-bin-2018.2.3.zip
2、file–>settings–>plugins–>Install plugin from disk 选中文件 ok
编写代码
object First {
def main(args: Array[String]): Unit ={
println("hello scala")
System.out.println("hello")
}
}
语法说明
object关键字,声明一个单例对象(伴生对象)
main方法:从外部可以直接调用执行的方法
def 方法名称(参数名称:参数类型): 返回值类型 ={方法体}
伴生对象的扩展说明
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;
}
//school不够面向对象
public void printInfo(){
System.out.println(this.name+" "+this.age+" "
+Student.school);
}
public static void main(String[] args) {
Student alice = new Student("alice", 20);
Student tom = new Student("tom", 18);
alice.printInfo();
tom.printInfo();
}
}
class Student(name:String,age:Int) {
def printInfo():Unit ={
println(name+" "+age+" "+Student.school)
}
}
//引入伴生对象 取消static同时还要实现static的功能
//伴生对象 伴生类里面的私有成员是可以相互访问
object Student{
val school:String="atguigu"
def main(args: Array[String]): Unit = {
val alice = new Student("alice",20)
val tom = new Student("tom",19)
alice.printInfo()
tom.printInfo()
}
}