scala 伴生类、伴生对象

/**
  * 伴生类
  *   伴生对象  伴生类之间方法可以互相访问
  */
class Oop1(name:String,age:Int) { //  scala默认的主构造函数
  println("class Oop1 one")

  private var uname:String=name
  private var uage:Int=age
  private var uaddress:String= _

  def this(){
    this("",0)
    println("无参")
  }

  def this(name:String){
    this(name,0)
  }

  def this(age:Int){
    this("",age)
  }

  def this(name:String,age:Int,address:String){
    this(name,age)
    this.uaddress=address
  }

  def showmsg():Unit={
    println("进入到Oop1  class showmsg()方法中")
    println(this.uname,this.uage,this.uaddress)
    Oop1.showObjectMsg()
    Oop1.like
    println("进入到Oop1  class showmsg()方法,最后一行")
  }
}

/**
  * 伴生对象
  */
object Oop1{
  println("object Oop1 one")
  println("object Oop1 two")
  private var like:String="scala"

  def apply(name: String, age: Int): Oop1 = new Oop1(name, age)
  def apply(name:String): Oop1 = new Oop1(name)
  def apply(age:Int): Oop1 = new Oop1(age)
  def apply(): Oop1 = new Oop1()
  def apply(name: String, age: Int, address:String): Oop1 = new Oop1(name, age, address)

  val oop13=Oop1()

  def sum(a:Int,b:Int):Int={
    println(a,b)
    oop13.uage
    oop13.showmsg()
    a+b
  }

  def showObjectMsg():Unit={
    println("Object Oop1  showObjectMsg")
  }

  def main(args: Array[String]): Unit = {
    println("main one")

    val oop1 = new Oop1("wjj",21)
    val oop2=new Oop1()
    val oop3 = new Oop1("wjj")
    val oop4 = new Oop1(21)
    val oop5 = new Oop1("wjj",21,"安德门")

    val oop11=Oop1("zs",12) //Oop1.apply("zs",12)
    val oop12=Oop1("zs")
    val oop13=Oop1()
    val oop14=Oop1(211)
    val oop15=Oop1("zs",21,"安德门")

    val i = sum(1,3)
    println(i)

    println(oop5.uaddress)

    println("main end")
  }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

honconM

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值