scala教程:类、对象和属性(成员变量)

介绍

scala中的类,其作用与java中的类是一样的,这里不做过多解释

类:相当于建筑的图纸、手机图纸

对象:根据图纸建造的大楼、手机

类

语法

[修饰符] class 类名 {
  类体
}

说明:

  • 不写访问权限,就表示 公共类,而且 公共类 不能声明 public,否则会报错

  • 一个 .scala 源文件可以包含多个类

例子

如下图:

class Phone{

}
class Student {
}

class Teacher{
}

属性(成员变量、实例变量)

与java中的属性含义相同

语法

[修饰符] var 名称 [:类型] = 属性值

说明:

  • 写在类的内部,方法的外部

  • 不写访问权限,就表示 public,注意:不能声明 public,否则会报错

例子

class Phone{
  var name:String="iphone15"
  var cpu:String = "A100"
  var screen:Double=6.1

  var rom:Int=128
  var ram:Int = 4

}

常量

初始化不能改变值

[修饰符] val 名称 [:类型] = 属性值

例子

class Phone{
  val pi=3.1415926

}

创建对象

语法

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

或者

val|var 对象名 [:类] = new 类 //省略小括号()

说明:

  1. val 修饰对象,不能改变对象的引用(即:内存地址),可以改变对象属性的值。

  2. var 修饰对象,可以修改对象的引用和修改对象的属性值

  3. 不加 [:类]也可以,自动推导变量类型,但 不能多态,所以多态需要显示声明

例子

创建对象、访问属性、给属性赋值

object StdClass {

  def main(args: Array[String]): Unit = {
    //val 修饰对象,不能改变对象的引用(即:内存地址),可以改变对象属性的值。
    val phone:Phone = new Phone()
    // phone = new Phone()// 错误
    println(phone.name)
    println(phone.cpu)
    phone.cpu = "123"
    println(phone.cpu)
    println(phone.screen)
    println(phone.rom)
    println(phone.ram)
  }
}

class Phone{
  val name:String="iphone15"
  var cpu:String = "A100"
  var screen:Double=6.1

  var rom:Int=128
  var ram:Int = 4

}

原文出处:/show_1IX1CYiPkchO.html