直接上代码:
//
//Scala示例:
class Hello(param: String) {//主构造
//类成员变量
var username: String = param;
//副构造
def this() = {
this(null)
}
def this(age: Int) = {
this()
}
//定义函数一、返回对象引用
def Say(message: String): Hello = {
println(username + " says \"" + message + "\"")
return this
}
//定义函数二
def Hi(): Unit = {
Say(username)
}
}
object Main {
//
def main(args: Array[String]): Unit =
{
val hi = new Hello()//调用副构造
println("hello scala", hi.username)
println(new Hello("Zhangsan").Say("hello").username)
new Hello(123).Hi()
}
//没搞懂
def test(code: =>Unit): Unit ={
println("start")
code
println("end")
}
//
test{
println("when evaluated")
println("bb")
}
//更没搞懂
def test1(code: ()=>Unit): Unit ={
println("start")
code()
println("end")
}
//
test1{
()=>
println("when evaluated 1")
println("bb 1")
}
}
运行结果:
"C:\Program Files\Java\jdk1.8.0_161\bin\java" "-javaagent:D:\Android\IntelliJ IDEA Community Edition 2017.3.4\lib\idea_rt.jar=53328:D:\Android\IntelliJ IDEA Community Edition 2017.3.4\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_161\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_161\jre\lib\rt.jar;D:\Android\TestScalaApp\out\production\TestScalaApp;C:\Users\houwenbin\.ivy2\cache\org.scala-lang\scala-library\jars\scala-library-2.12.6.jar;C:\Users\houwenbin\.ivy2\cache\org.scala-lang\scala-reflect\jars\scala-reflect-2.12.6.jar" Main
start
when evaluated
bb
end
start
when evaluated 1
bb 1
end
(hello scala,null)
Zhangsan says "hello"
Zhangsan
null says "null"
Process finished with exit code 0