zoukankan      html  css  js  c++  java
  • Scala 构造器

    Scala 构造器和Java的构造方法有相似之处,Scala 构造器分为主构造器和附属构造器,主构造器只有一个,附属构造器可以有无数个。

    主构造器

    在我们对一个类实例化的时候,一定会调用主构造器,或显式调用或隐式调用的区别而已。

    定义一个主构造器

    class 类名(....)

    主构造器可以携带参数列表,也可以不携带参数列表,例如很多类在定义的时候可能不会带有参数,这时类的主构造器就没有参数。

    附属构造器

    1. 附属构造器的名称统一为 this ;

    2. 每一个附属构造器都必须显式地调用其它附属构造器或者主构造器。

    DEMO

    /**
     * class 类名(....)  在Scala中叫做主构造器
     *
     * 附属构造器
     */
    class Person(val name:String, val age:Int) {   // 默认也把括号中定义的东西转成属性
      println("Person Constructor enter...")
    
      val school = "pku"
      var gender:String = _
    
      /**
       * 附属构造器
       * 1) def this定义的叫做附属构造器
       * 2) 一个附属构造器中第一行必须要调用主构造器或者其他附属构造器
       */
      def this(name:String, age:Int, gender:String) {
        this(name, age) // 调用主构造器
        this.gender = gender
      }
    
      // 默认class里面是有一个toString
      override def toString() = "父类的toString方法"
    
      println("Person Constructor leave...")
    }
  • 相关阅读:
    如果int x=20, y=5,则语句System.out.println(x+y +""+(x+y)+y); 的输出结果是()
    子父类存在同名成员时super的使用条件
    7mysql高级查询
    1udp编程
    6mysql外键
    4mysql数据表增删改查
    5mysql数据类型
    3mysql数据库操作
    2mysql基本使用
    1mysql安装
  • 原文地址:https://www.cnblogs.com/chuijingjing/p/14451337.html
Copyright © 2011-2022 走看看