函数式编程

scala:构造方法与apply

2020-01-31  本文已影响0人  李拾叁的摸鱼日常
class Person(name:String,age:Int){ // 主构造方法
  this(name:String,age:Int,address:String){ // 辅助构造方法
    this(name,age) // 必须调用主构造方法
  }
}
/**
  * 主构造器中的参数name是Cat1中的局部变量
  * @param name
  */
class Cat1(name:String){

}

/**
  * 主构造器中的参数使用val声明,会被当作类中的只读属性,有getter,类外部可以方法,但不能赋值
  * @param name
  */
class Cat2(val name:String){

}

/**
  * var声明的nane是读写属性
  * @param name
  */
class Cat3(var name:String){}
class A(name: String) {

}
class B(name: String, age: Int) extends A(name) { // 显示调用父类的主构造方法
  def this(name: String, age: Int, address: String) {
    this(name, age) // 调用子类主构造方法
  }
}
class Pig(var name: String) {
  def info: Unit = println(name)
}

object Pig {
  def apply(name: String): Pig = new Pig(name)
}

val p = new Pig("new佩奇")
p.info
val pig = Pig("apply佩琦")//调用apply方法
pig.info
上一篇 下一篇

猜你喜欢

热点阅读