scala-构造器-辅助构造器-伴生对象-单例对象

                       scala-构造器-辅助构造器-伴生对象-单例对象

 

一、构造器+辅助构造器

package day02

/**
  *  构造器 声明
  *      +辅助构造器
  *   注意:
  *       主构造器的参数列表,放在类名的后面,与类名在一起
  *       val修饰的构造参数具有不可变性。var 修饰的具有可变性。
  *       faceValue 没有被修饰,默认是val
  *
  * @param name 姓名  //val 无法赋值
  * @param age 年龄   //var 可以赋值
  * @param faceValue 颜值  //可以直接进行赋值
  */
class StructDemo (val name:String,var age:Int, faceValue:Int = 90){
  def getFaceValue = faceValue

  var gender:String = _

  //辅助构造器
  def this(name:String,age:Int, faceValue:Int,gender:String){
    this(name,age,faceValue)
    this.gender=gender
  }
}


object StructDemo{

  def main(args: Array[String]): Unit = {
    val sd = new StructDemo("张三",12,90)

    println("sd.age: "+sd.age)
    println("sd.name: "+sd.name)
//    println(sd.faceValue)
    println("sd.getFaceValue:"+sd.getFaceValue)


    val sd1 = new StructDemo("李四",23,80,"女")
    println("sd1.age: "+sd1.age)
    println("sd1: "+sd1)
    println("sd1.getFaceValue: "+sd1.getFaceValue)


  }
}

二、半生对象

package day02

/**
  * 伴生对象
  *   与类名相同,并且用object修饰的对象:伴生对象。
  *   类和伴生对象之间,可以互相访问私有的方法和属性。
  *
  */
class Companion {
  private var name1 = "小明"
  def privatePrint1: Unit ={

    println("我是:"+name1+"; 我朋友是 :"+Companion.name2)

  }



}

//伴生对象
object Companion{
  private var name2 = "小竹笋"


  def main(args: Array[String]): Unit = {
    val companion1 = new Companion
    println("我是小竹笋,我朋友是: "+companion1.name1)


    companion1.name1 = "小王"

    companion1.privatePrint1

  }

}

三、单例对象

package day02

import com.sun.deploy.security.SessionCertStore

import scala.collection.mutable.ArrayBuffer


//单例对象
/**
  * 在scala中是没有静态方法和静态字段的,但是可以使用 object关键字+Class类名 语法结构实现同样的功能
  *   1,工具类、存放敞亮和工具方法
  *   2,实现单例模式
  */
object SingletonDemo {

  def main(args: Array[String]): Unit = {
    SingletonFactory
    println(SingletonFactory.getSession)
    SingletonFactory.removeSession
  }


}
object SingletonFactory{
  //相当于Java中的静态块
  println("sessionFactory 已经执行~~ " )

  var i = 5;
  private val session = new ArrayBuffer[Session]()

  while (i>0){
    session += new Session
    i -= 1
  }
//  println(session)

  def getSession = session
  def removeSession: Unit ={
    val s = session(0)
    session.remove(0)
    println("session 已经被移除了~~"+s)

  }


}
class Session{}

欢迎订阅关注公众号(JAVA和人工智能)

                                                           获取更多免费书籍、资源、视频资料

 

               

文章超级链接:

 1,分布式系统详解--基础知识(概论)

 2,分布式系统详解--基础知识(线程)

 3,Eclipse安装plugin插件

 4,IDEA和Eclipse的比较

 5,IntelliJ IDEA(最新)安装-破解详解--亲测可用

 6,Intellij IDEA+Maven+Scala第一个程序

 7,Scala语言模拟实现WordCount计数

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值