开发者社区> 问答> 正文

scala和java 的区别是什么?

scala和java 的区别是什么?

展开
收起
芯在这 2021-12-11 22:52:31 494 0
1 条回答
写回答
取消 提交回答
  • 1、变量申明:

    scala:只需要申明是val或是var,具体的类型(比如String,Int,Double等等),由编译器自行推断

    java: 需要在变量前面先注明变量的类型

    2、返回值:

    scala:申明返回值是在后面,并且不需要return语句,非要用,也不是不可以

    java: 如果有返回值,需要return语句

    3、结束符

    scala:不需要使用分号作为结束符

    java: 每个语句结束后需要分号作为结束符

    4、循环

    scala:循环语句可以用于守卫

    java: 不可以这么写

    5、通配符:

    scala:_

    java: *

    6、构造器

    scala:构造器名称为this,scala的辅助构造器之前需要有一个主构造器或者其他辅助构造器,并且scala的构造器参数可以直接放在类的后面

    java: 构造器名称需要与类名称一样

    7、内部类

    scala:scala实例化的内部类是不同的,可以使用类型投影,例如 Network#Person表示Network的Person类

    java:内部类从属于外部类

    8、接口

    scala:scala中接口称为特质(trait),特质中是可以写抽象方法,也可以写具体的方法体以及状态。且类是可以实现多个特质的。

    特质中未被实现的方法默认就是抽象的

    子类的实现或继承统一使用的事extends关键字,如果需要实现或继承多个使用with关键字

    特质中可以有构造器

    特质可以继承普通的类,并且这个类称为所有继承trait的父类

    java: java中的接口(interface),接口中的方法只能是抽象方法,不可以写具体包含方法体的方法

    接口中不能有抽象的属性,且属性的修饰符都是public static final

    类实现接口需要使用implements关键字,实现多个接口,需要用逗号隔开

    接口中不可以有构造器

    接口不可以继承普通的类

    9、赋值

    scala:scala中的赋值语句返回结果是unit的不可以串联,例如x=y=1,这样是有问题的,x并没有被赋值为1

    java: x=y=1,这样是没问题的

    2021-12-11 22:52:52
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Just Enough Scala for Spark 立即下载
EXTENDING SPARK WITH JAVA AGENTS 立即下载
JDK8新特性与生产-for“华东地区scala爱好者聚会” 立即下载