首页 > 其他 > 详细

Scala:Object与Class的区别

时间:2019-06-01 12:00:14      阅读:124      评论:0      收藏:0      [点我收藏+]

1.在Scala中声明private变量,Scala编译器会自动生成get,set方法
2.在Scala中变量需要初始化
3.在Scala中没有静态修饰符,在object下的成员全部都是静态的,如果在类中声明了与该类相同名字的object则该object是该类的”伴生对象”,所以对于一个class来说,所有的方法和成员变量在实例被 new 出来之前都是无法访问的
可以理解为Scala把类中的static集中放到了object对象中,伴生对象和类文件必须是同一个源文件,可以用伴生对象做一些初始化操作.
4.在Java中可以通过interface实现多继承,在Scala中可以通过特征(trait)实现多重继承,但是与Java不同的是,它可以定义自己的属性和实现方法体
5.object不能提供构造器参数,也就是说object必须是无参的

Scala中object与class的区别
在Scala中,类名可以和对象名为同一个名字,该对象称为该类的伴生对象,类和伴生对象可以相互访问他们的私有属性,但是它们必须在同一个源文件中

class


 

scala中class:编译器会自动帮我们生产一个私有字段和2个公有方法get和set
类只会被编译,不能直接执行,类的声明和主构造器在一起被声明,在一个类中,主构造器只有一个.
类和它的伴生对象可以相互访问其私有成员,class中的main方法没什么用了

object


 

scala中object:所有成员变量和方法默认都是 static 的,所以可以直接访问main方法

class和object的一个差别是,单例对象不带参数,而类可以.因为你不能用new关键字实例化一个单例对象,你没有机会传递给它参数

class Lis {
  var age=19
}
object Test{
  def main(args: Array[String]): Unit = {
    var s=new Lis
    s.age=10    //set
    println(s.age)  //get
  }
}

 

Scala:Object与Class的区别

原文:https://www.cnblogs.com/AlanWilliamWalker/p/10959055.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!