笔记:scala面向对象

类:

在scala源文件中可以包含多个类,所有这些类都具有可见性

定义

//主构造器会执行类中定义的所有语句
class Test(val money: Double) {
  private var gender = "M"

  //用this关键字定义辅助构造器
  def this(money:Double,gender: String) {
    //每个辅助构造器必须以主构造器或其他的辅助构造器开始
    this(money)
    this.gender = gender
  }

  //用val修饰的变量是只读属性,只有getter
  val id = 1

  //用var修饰的变量既有getter也有setter
  var name: String = "tom"

  //被private修饰的变量时私有的,但类的伴生对象可以调用
  private var age: Int = 18

  //被private[this]修饰的变量仅能在类中被访问,对象无法访问,会报错
  private[this] var pet = "jerry"
}

/**
 * 与类名相同的对象叫做伴生对象
 * 类和伴生对象之间可以相互访问私有的属性和方法
 */
object Test {

  def main(args: Array[String]): Unit = {
    val test = new Test(100.0,"M")
    val gender = test.gender
    //无法访问
    //test.pet
    println(gender)
  }
}

继承

与java相同都是使用extends关键字

实现接口使用with关键字,定义使用trait关键字

重写一个非抽象方法必须使用override关键字

实现多个接口需要使用extends作为开始

模式匹配

Option类型

在scala中Option类型样例类用来表示可能存在或不存在的的值(Option的子类有Some:有值,None:没有值)

偏函数

被包在花括号内没有match的一组case语句是一个偏函数,它是PartialFunction[A,B]的一个实例,A代表输入类型,B代表返回类型,常用作输入模式匹配

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值