Scala初识

1.scala简介

是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特性。Scala运行于Java平台(Java虚拟机)并兼容现有的Java程序。

scala特点 

1.Scala是面向对象

Scala是一种纯粹的面向对象语言,每一个值都是对象。对象的数据类型以及行为由类和特征来描述,类抽象机制的扩展通过两种途径实现,一种是子类继承,另一种是混入机制,这两种途径都能够避免多重继承的问题。

2.Scala是函数式编程

Scala也是一种函数式语言,其函数可以作为值来使用。Scala提供了轻量级的语法用于定义匿名函数,支持高阶函数,允许嵌套多层函数,并支持柯里化。

3.Scala是静态类型(即类型一旦定义将无法改变)

Scala具备类型系统,通过编译时检查,保证代码的安全性和一致性。类型系统支持的特性包括泛型类、注释、类型上下限约束、类别和抽象类型作为对象成员、复合类型、引用自己时显示指定类型、视图、多态方法。    

4.Scala是可扩展的

在实际开发中,某个特定领域的应用程序开发往往需要特定领域的语言扩展。Scala提供了许多独特的语言机制,它以库的方式能够轻易无缝添加新的语言结构。

5.Scala是可以交互操作的

Scala旨在与流行的Java Runtime Environment(JRE)进行良好的交互操作。Scala用scalac编译器把源文件编译成Java的class文件(即在JVM上运行的字节码)。我们可以从Scala中调用所有的Java类库,也同样可以从Java应用程序中调用Scala的代码。

2.scala 环境搭建

增加Scala插件

在idea的左上角找到【File】->【settings】->【Plugins】,在右边搜索scala插件,点击安装,安装完毕后重启(如果需要)。

 创建一个项目,在其中加入以下依赖。

<dependency>
    <groupId>org.scala-lang</groupId>
    <artifactId>scala-library</artifactId>
    <version>2.11.12</version>
</dependency>

<dependency>
    <groupId>org.scala-lang</groupId>
    <artifactId>scala-compiler</artifactId>
    <version>2.11.12</version>
</dependency>

<dependency>
    <groupId>org.scala-lang</groupId>
    <artifactId>scala-reflect</artifactId>
    <version>2.11.12</version>
</dependency>

并在build->plugins->plugin下加入编译Scala的插件

<plugin>
    <groupId>org.scala-tools</groupId>
    <artifactId>maven-scala-plugin</artifactId>
    <version>2.15.2</version>
    <executions>
        <execution>
            <goals>
                <goal>compile</goal>
                <goal>testCompile</goal>
            </goals>
        </execution>
    </executions>
</plugin>

第一个scala程序

package com.bigdata.scala

//在class定义的只是普通方法,需要用类的对象才能调用,即new
class Demo01HelloWorld {
  def printScala(): Unit = {
    println("Hello Scala3!!")
  }
}

//在Scala里object里的方法是静态的,声明的是类对象,所以通过object直接运行,直接通过类对象进行调用
object Demo01HelloWorld{
  def printScala():Unit={
    println("Hello Scala2!!")
  }

  def main(args: Array[String]): Unit = {
    System.out.println("Hello Scala1!!")
    Demo01HelloWorld.printScala()  //静态方法直接调用
    val world = new Demo01HelloWorld()
    world.printScala()  //类的方法调用

    //在scala调用java类的对象,要放在同一个包下
    val value = new Demo01HelloWorldJava()
    value.printHello()
  }
}

在scala中,object中的方法,变量是静态的

class中的变量和方法都是普通变量。

java和scala之间的类可以相互调用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值