0
点赞
收藏
分享

微信扫一扫

Scala基础篇二(类逻辑,类使用)

云上笔记 2022-03-24 阅读 45
scalaspark

构造器:

Class Counter(var name:String)//定义一个类构造器。

Var mycounter = new Counter(“Runner”)//定义一个调用类构造器的变量。

Scala类可以包含零个或多个辅助构造器(auxiliary constructor)。辅助构造器使用this进行定义,this的返回类型为Unit。Unit是一个特殊的元组——没有元素的元组,它表示一个函数没有任何信息需要返回每个辅助构造器的第一个表达式必须是调用一个此前已经定义的辅助构造器或主构造器,调用的形式为“this(参数列表)”

啊什么官方语言有点迷!!说实话我也同感好吧,以下是自己的一些理解。

主构造器和辅助构造器就是参数传入接口,参数的传入方式不同。一般来说主构造器不需要传入参数,参数都是在类变量中定义,这么做的好处是对辅助构造器比较方便,辅助构造器参数传入可以不受主构造器的限制,从而可以提供更多不同的使用接口。因为定义辅助构造器时第一个需要引用主构造器,此时该辅助构造器传入的参数就必须包括主构造器的参数。当然我们传入的参数都必须与类里定义的变量对应。

不说了!!来张运行图放松放松!!看图!!!

 实例:

object no6 {
  class constructor{//主构造器
    var name=""
    var step=1
    def this(name:String){//第一个辅助构造器
      this()//调用主构造器
      this.name=name
    }
    def this(name:String,step:Int){//第二个辅助构造器
      this(name)//调用第一个辅助构造器
      this.step=step+1
}
    def man{
      println(name,step)
    }
  }
 def  main(arg:Array[String]): Unit ={
      import io.StdIn
      var i=readInt()  //从控制台读取一个整型数据
      var str =readLine() //从控制台读取一个字符串
      val pro=new constructor(str,i)//调用一个constructor类,通过第二个辅助构造器为入口
      pro.man//使用类方法
    }
}

效果:

 以上均为小人粗浅见解,若有不对之处,还望海涵!!!当然要是能评论指出就更香了

举报

相关推荐

0 条评论