Scala08_面向对象基础05_构造方法

1.通过构造方法创建对象

Scala中的创建对象的语法和Java是类似的

val | var 对象名 [:类型]  = new 类型()
var user : User = new User()

2.构造方法

2.1 Scala中类的构造方法

object Scala09_Object_Instance {

  def main(args: Array[String]): Unit = {
    //创建对象
    val user = new User()//调用类的构造方法
  } 
  
  class User(){
    // Scala中类的主题内容其实就是类的构造方法体
    // 构建对象的时候,构造方法就会执行,同时类的主体内容也会执行
    println("123")
  }
}
  1. 通过new关键字来创建对象的方式 都是通过构造方法来创建的
  2. Scala中构造方法并不和java中一样,java中构造方法是类中的一个和类名相同的方法;而Scala是在声明类的时候,在类名后面可以增加小括号,小括号里的参数就是构造参数列表
    类的主体内容其实就是类的构造方法体
  3. 创建对象的时候,构造方法就会执行,即类的主体内容会执行
  class User(){
    //todo 3.Scala中类的主题内容其实就是类的构造方法体
    // 构建对象的时候,构造方法就会执行,同时类的主体内容也会执行
    println("123")
  }

2.2 主构造方法和辅助构造方法

object Scala09_Object_Instance {

  def main(args: Array[String]): Unit = {
    //创建对象
     val user = new User(张三)//调用类的构造方法
  }


   //主构造函数
  class User(){
    //辅助构造方法:this
    println("xxxxxxx")
    def this(name:String)={
      this() //必须直接或者间接调用主构造方法  this就是主构造方法
      println("yyyyyyyy")
    }

    def this(name:String,age:Int)={
      this(name)
      println("zzzzzzzz")
    }
  }
}
xxxxxxx
yyyyyyyy
  1. 当Scala中需要多个构造方法的声明,需要提供类的辅助构造方法
    Scala中类的构造方法分为2类:主构造方法辅助构造方法

  2. 主构造方法就是类名后面 小括号中参数列表 + 类体
    主构造方法用于创建对象,完成类的初始化操作

  3. 辅助构造方法用于辅助主构造方法创建对象 辅助构造方法完成功能补充;
    辅助构造方法不能独立使用,必须直接或者间接调用主构造方法
    主构造方法完成类的初始化,辅助构造方法完成对类的补充

  4. 主构造方法并不是一定为无参的;反而辅助构造方法可能是无参的

 class Parent(name:String){
    println("111111")

    def this(){
      this("xxxx")
      println("222")
    }
    println("333333333")
  }
  1. 构造器调用其他另外的构造器,要求被调用构造器必须提前声明
    如下这种写法就是错误的
//主构造函数
 class User(){
   //辅助构造方法:this
   println("xxxxxxx")
   
   def this(name:String,age:Int)={
     this(name)
     println("zzzzzzzz")
   }

   def this(name:String)={
     this() //必须直接或者间接调用主构造方法  this就是主构造方法
     println("yyyyyyyy")
   }
 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值