Scala 中类的认知
来源:互联网 发布:java定义数组函数 编辑:程序博客网 时间:2024/05/29 12:13
===================================================
scala里面的类:
1、属性默认是public的;
2、设置私有,加上private;
3、函数中传入的参数是val类型的;
Scala比Java更面向对象的一个方面是Scala没有静态成员。替代品是,Scala有单例对象:singleton object
单例对象的类型是由单例对象的伴生类定义的。然而,单例对象扩展了超类并可以混入特质。由于每个单例对象都是超类的实例并混入了特质,你可以通过这些类型调用它的方法,用这些类型的变量指代它,并把它传递给需要这些类型的方法。
==================================================
单例对象的使用就是采用伴生类来实现的, 就是同一个类中即有class,也有object
就像这样
class SwitchTryCatch {
def useSwitch(): Unit ={
val inpara = "a"
inpara match {
case "a" => println(" just match please quit")
case "b" => print("just ok")
case "c" => "c"
}
}
def useTryCatch(): String ={
val a = 10
val b = 11
if(a>b) {
throw new RuntimeException("you are wrong")
}else {
b+"" // this as a return
}
}
}
object SwitcchTryCatchTest extends Application{
var stc = new SwitchTryCatch
var rest = stc.useTryCatch()
print(rest)
}
==========================================================
Application特质
//继承自application之后, 可以直接在{}之间运行代码。
import ChecksumAccumulator.calculate
object FallWinterSpringSummer extends Application
{
for (season <- List("fall", "winter", "spring"))
println(season +": "+ calculate(season))
}
继承自Application比写个显式的main方法要短,不过它也有些缺点。首先,如果想访问命令行参数的话就不能用它,因为args数组不可访问。比如,因为Summer程序使用了命令行参数,所以它必须带有显式的main方法,如代码4.3所示。第二,因为某些JVM线程模型里的局限,如果你的程序是多线程的就需要显式的main方法。最后,某些JVM的实现没有优化被Application特质执行的对象的初始化代码。因此只有当你的程序相对简单和单线程情况下你才可以继承Application特质。
scala里面的类:
1、属性默认是public的;
2、设置私有,加上private;
3、函数中传入的参数是val类型的;
Scala比Java更面向对象的一个方面是Scala没有静态成员。替代品是,Scala有单例对象:singleton object
单例对象的类型是由单例对象的伴生类定义的。然而,单例对象扩展了超类并可以混入特质。由于每个单例对象都是超类的实例并混入了特质,你可以通过这些类型调用它的方法,用这些类型的变量指代它,并把它传递给需要这些类型的方法。
==================================================
单例对象的使用就是采用伴生类来实现的, 就是同一个类中即有class,也有object
就像这样
class SwitchTryCatch {
def useSwitch(): Unit ={
val inpara = "a"
inpara match {
case "a" => println(" just match please quit")
case "b" => print("just ok")
case "c" => "c"
}
}
def useTryCatch(): String ={
val a = 10
val b = 11
if(a>b) {
throw new RuntimeException("you are wrong")
}else {
b+"" // this as a return
}
}
}
object SwitcchTryCatchTest extends Application{
var stc = new SwitchTryCatch
var rest = stc.useTryCatch()
print(rest)
}
==========================================================
Application特质
//继承自application之后, 可以直接在{}之间运行代码。
import ChecksumAccumulator.calculate
object FallWinterSpringSummer extends Application
{
for (season <- List("fall", "winter", "spring"))
println(season +": "+ calculate(season))
}
继承自Application比写个显式的main方法要短,不过它也有些缺点。首先,如果想访问命令行参数的话就不能用它,因为args数组不可访问。比如,因为Summer程序使用了命令行参数,所以它必须带有显式的main方法,如代码4.3所示。第二,因为某些JVM线程模型里的局限,如果你的程序是多线程的就需要显式的main方法。最后,某些JVM的实现没有优化被Application特质执行的对象的初始化代码。因此只有当你的程序相对简单和单线程情况下你才可以继承Application特质。
0 0
- Scala 中类的认知
- 自我认知Scala
- Android中接口类(Interface)的一点认知
- scala学习之Scala中类的使用
- java中BigDecimal数据类型的认知
- 对Java中关键字的认知
- JavaWeb中request与response的认知
- 对C中操作符的认知
- scala中:: , +:, :+, :::, +++的区别
- scala中:: , +:, :+, :::, +++的区别
- scala中:: , +:, :+, :::, +++的区别
- scala中:: , +:, :+, :::, +++的区别
- scala中:: , +:, :+, :::, +++的区别
- 【Scala】Scala的类层级
- scala学习-10-scala中:: , +:, :+, :::, +++的区别
- Scala中类private
- linux系统中,同步、互斥、阻塞的初步认知
- ceph存储 ceph中对crush算法的认知
- 介绍MenuDrawer这个牛x的控件,实现左右出菜单,上下出菜单
- char*,const char*和string的相互转换
- SQL Server Browser是什么
- 三维数字地球发布平台探索--几款开源软件介绍
- Java enum枚举的用法
- Scala 中类的认知
- 嵌入式 arm平台ping域名指定ip小结
- kail linux 常用命令
- 【软考】--数据库原理“地图”
- 小三被原配当街扒衣毒打
- 动态查询的好博客
- 两台linux服务器之间传输文件
- Oracle分析函数
- quick-cocos2d-x(lua) 拖动精灵使其在屏幕移动的效果实现