搜索
查看: 1225|: 0

scala 基础 2

[复制链接]

42

主题

0

回帖

204

积分

中级会员

积分
204
发表于 2018-3-16 13:14:25 | 显示全部楼层 |阅读模式

lazy关键字
惰性变量用法放在不可变变量之前
只有在调用惰性变量时才会去实例化这个变量,类似于java中单例模式的懒汉模式


scala中类的关键字默认就是public的,所以如果是public的则不需要加访问限制关键字
一个类文件可以声明多个类

语法:
class 类名{

}
静态类
object 类名{

}

如果类名和静态类的类名相同那这个静态类就叫做这个类的伴生对象

类中的属性:
可以分为可变(var)和不可变(val)
访问修饰可以分private和private[this]

构造器:
用于对类进行属性的初始化,分为主构造器和辅助构造器

1).主构造器用法:
语法:
//参数可以有默认值
class 类名(参数列表){

}

2).辅助构造器用法:
语法:

//辅助构造器中使用的变量进行声明
var a:String = _

def this([辅助构造器参数列表...],a:String){
this(主构造器参数列表) //看自己的情况来定是否辅助构造器参数列表与主构造器参数列相同
this.a = a //这个a变量需要在class中进行声明,不然提示找不到这个变量
}

总结:

主构造器的参数列表要放到类名的后面,和类名放在一起,val修饰的构造参数具有不可变性,var修饰的构造参数具有可变性
如果参数没有用val或var修饰那它既不可被外面直接方问(可通过相应的get方法访问)只能在本类中使用,伴生对象也无法使用,也不可在本类中进行修改因为它被当成隐藏的val修饰的

辅助构造器可以没有,如果有要在类中进行定义,辅助构造器可以声明主构造器没有的参数,如果声明了其它参数那这个参数需要在类中进行定义,否则提示无法找到这个参数
辅助构造器也可以理解成java中的构造器重载,且辅助构造器的第一行必须要先调用主构造器(这点和python的基础调用父类比较相似)

idea使用:


如果按ctrl+p,提示有两行或多行的时候那就说明有铺装构造器

版权声明:原创作品,允许转载,转载时务必以超链接的形式表明出处和作者信息。否则将追究法律责任。来自海牛部落-青牛,http://hainiubl.com/topics/208



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

大数据中国微信

QQ   

版权所有: Discuz! © 2001-2013 大数据.

GMT+8, 2024-12-22 20:13 , Processed in 0.048817 second(s), 24 queries .

快速回复 返回顶部 返回列表