scala中的class、object和trait的区别
来源:互联网 发布:乐语网络电话软件 编辑:程序博客网 时间:2024/05/22 15:56
class
class Counter { private var value = 0 // 必须初始化字段 def increment() { value += 1 } // 方法默认公有 def current = value // 调用必须是myCounter.current这种风格}class Student{ var age=20 //底层编译器会自动为私有的age添加get和set的公有方法,可以理解为伪public类型 private[this] var gender="male" //private[this] 只有该类的this可以使用 private var name="clow" //声明了private,底层编译器会自动为私有的name添加get和set的私有方法 //但是可以自己定义属性方法 def getName=this.name def setName(value:String){this.name=value} }
Scala类和java类中有些区别,在Scala声明private变量会Scala编译器会自动生成get,set,在Scala中变量是需要初始化的,如果不声明private默认是public的。
object
Scala中没有静态修饰符,static,在object下的成员全部都是静态的,如果在类中声明了与该类相同的名字的object则该object是该类的“伴生对象”,可以理解把类中的static集中放到了object对象中,伴生对象和类文件必须是同一个源文件,可以用伴生对象做一些初始化的操作。
trait
在java中可以通过interface实现多重继承,在Scala中可以通过特征(trait)实现多重继承,不过与java不同的是,它可以定义自己的属性和实现方法体,在没有自己的实现方法体时可以认为它时java interface是等价的,在Scala中也是一般只能继承一个父类,可以通过多个with进行多重继承。
0 0
- scala中的class、object和trait的区别
- scala class和object,trait的区别
- Scala中object\class\trait的区别
- Scala中object、class与trait的区别
- Scala中object、class与trait的区别
- class object trait 区别
- Scala的object和class的区别
- scala中 object 和 class的区别
- scala class和object的区别
- scala中的object和class
- scala中的object和class
- Scala 学习之 Class,Object, Trait
- Scala Q&A : 特质trait和抽象类abstract class的区别?
- Scala和Java的区别--Object与Class的区别
- class与object的区别和使用方法[scala]
- Scala伴生类Class和伴生对象Object的区别
- scala:Object与Class的区别
- scala总结(1) -- trait, object, class等相关概念
- leetcode 104. Maximum Depth of Binary Tree
- MySQL---自增字段最大值操作
- 用GDB调试程序
- [leetcode]451. Sort Characters By Frequency
- 我爱我的文章。
- scala中的class、object和trait的区别
- Linux 安装Nvidia闭源驱动-第一步
- linux线程
- 电影《夜行动物》
- 我爱你,我的文章。。
- 算法训练 动态数组使用
- 三种SCN查询SQL
- Spring的AOP配置问题
- Java反射机制