scala 随笔(2) scala构造函数 this

scala里面的方法定义先于执行体加载,所以下面问题是没有问题的 ,println(f) 先于定义
object Constructor {

  class Test{
    println(f);
    def f = {
      "I am here!!!"
    }
  }

  def main(args: Array[String]): Unit = {
    new Test;
  }
}
构造器是构造新的对象,首先初始化类中的定义的变量和方法,然后进入类体,之上往下加载类如:

   
   
  1. class Constructor2 {
  2. var x = 0
  3. def f() ={
  4. x=12
  5. }
  6. f()
  7. }
  8. object Constructor2{
  9. def main(args: Array[String]): Unit = {
  10. var constructor2 = new Constructor2
  11. println(constructor2.x)
  12. }
  13. }

辅助构造器 this,通过this 可以重载构造器
   
   
  1. package test
  2. class Constructor2(var a:Int,val b:String="tiantian") {
  3. var x = 0
  4. def f() ={
  5. x=12
  6. }
  7. def this(c:Int){
  8. this(c,"tom")
  9. }
  10. }
  11. object Constructor2{
  12. def main(args: Array[String]): Unit = {
  13. var constructor2 = new Constructor2(12)
  14. println(constructor2.a)
  15. println(constructor2.b)
  16. }
  17. }

output:
12
tom

Process finished with exit code 0






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值