Scala与java

Scala简介

  Scala既支持面向对象的编程方式,又支持函数式编程。它一方面吸收继承了多种语言中的优秀特性,一方面又没有抛弃Java这个强大的平台,它运行在JVM之上,轻松实现和丰富的Java类库互联互通。Scala 语言的特性有许多,例如高阶函数和对象、抽象类型绑定,actor 使得函数在 Scala 中能是一个子类成为可能,Scala 中的设计模式使得面向对象和函数编程无缝结合。

Scala和java的区别

1、对字符串的支持
Scala采用三个双引号“”“支持换行字符串,Java需要采用“+”进行字符串的连接

2、方法返回值
Scala的return是可选的,方法调用会自动返回最后求值的表达式,如果Scala使用了return则需要显示指定方法的返回值。Java需要显示的采用return进行值的返回。

3、类和方法修饰符的默认值
Scala默认是public,java默认是protected.

4、默认导入的类
Scala默认导入java.lang包、scala包、scala.Predef类。java默认导入java.lang包

5、接口
Scala不支持接口interface,采用trait(类似于Java中的抽象类);java支持接口。
Java的接口与Scala的trait特质区别
【1】接口不会有构造器,特质可以有构造器,并且在实现类继承特质的时候,先要调用特质的构造器。trait构造器的调用顺序小结:

class B{
   }
trait C extends E{
   }
trait D extends E{
   }
A extends B with C with D
(1)先调用父类构造器B
(2)继承多个trait从从左至右依次执行,先调用父trait E构造器,再调用C,再调用D构造器
(3)如果多个trait继承同一个父trait,则父trait只执行一次
(4)所有父类构造器和trait构造器执行完毕之后再执行自己的构造器A

【2】接口中不能有未初始化的属性,且属性的修饰都是public static final,特质中可以有未初始化的属性变量,即抽象字段
【3】java8之前接口中不能有已经实现的方法,之后可以有default方法和静态方法,特质中可以有已实现的方法也有抽象方法
【4】类实现implements多个接口,且用逗号“,”隔开,类继承extends多个trait且用with隔开
【5】java中接口不能继承普通类,但是Scala中特质可以extends class,并且该类成为所有继承trait的类的父类
【6】Scala中为实例提供混入trait(只有某个对象有trait的性质,其他对象没有),java中没有

6、类成员和单例对象
Scala语言机制上支持单例对象和伴生对象,伴生类。伴生类和伴生对象需要在一个类文件中使用,在使用伴生对象时,系统隐式地调用apply生成一个伴生实例的对象。java由类成员,单例对象需要自己实现

7、方法参数
Scala支持以函数作为参数,java不支持。

8、模式匹配
scala 的 patte

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值