Scala类基础

简介:

最近在开始学习Scala,本篇文章我们来讲解一下Scala中类的使用

class Counter {
    var defaultValue = 0
    val valValue = 0
    private var privateValue = 0
    private[this] var value = 0

    def increment(): Unit = {
        value += 1
    }

    def current(): Int = {
        value
    }

    def current1(): Int = value

    def current2: Int = value

}

object Counter {

    def main(args: Array[String]) {
        val counter: Counter = new Counter
        println(counter.current())
        println(counter.current1())
        println(counter.current2) //不能采用counter.current2()方式调用
    }
}

上面的例子就是一个Scala中的类的一般写法。

有几个需要注意的点:

  • Scala中方法默认都是公有的
  • 必须初始化Scala类中的字段
  • 在Scala中,类并不声明为public, Scala源文件可以包含多个类,并且这些类都具有公共可见性

我们也可以自己定义getter和setter方法:

package com.rollenholt.showcase.scala.clazz

class Counter {
    private var defaultValue:Int = 0

    def value = defaultValue

    def value_= (newValue: Int): Unit ={
        if(newValue == 1){
            defaultValue = 2
        }
    }

}

object Counter {

    def main(args: Array[String]) {
        val counter: Counter = new Counter
        println(counter.value)
        counter.value = 1
        println(counter.value)
        counter.value = 2
        println(counter.value)
    }
}

输出

0
2
2


==============================================================================
本文转自被遗忘的博客园博客,原文链接:http://www.cnblogs.com/rollenholt/p/3945596.html,如需转载请自行联系原作者

相关文章
|
6天前
|
分布式计算 Java 大数据
Scala:样例类、模式匹配、Option、偏函数、泛型(三)
Scala:样例类、模式匹配、Option、偏函数、泛型(三)
54 0
|
6月前
|
Scala
163 Scala 类
163 Scala 类
22 0
|
存储 分布式计算 Java
一天学完spark的Scala基础语法教程十、类和对象(idea版本)
一天学完spark的Scala基础语法教程十、类和对象(idea版本)
98 0
一天学完spark的Scala基础语法教程十、类和对象(idea版本)
|
Java Scala
Scala学习笔记(四) 类的初步
Scala学习笔记(四) 类的初步
106 0
|
Java 程序员 Scala
Scala基础教程 - 单例对象、伴生类是什么?
Scala基础教程 - 单例对象、伴生类是什么?
194 0
|
大数据 Java Scala
大数据Scala系列之类
大数据Scala系列之类 类的定义 Scala 访问修饰符基本和Java的一样,分别有:private,protected,public。 如果没有指定访问修饰符符,默认情况下,Scala 对象的访问级别都是 public。
4070 0
|
Scala
Scala系列之样例类_Option_偏函数
  在Scala中Option类型样例类用来表示可能存在或也可能不存在的值(Option的子类有Some和None)。Some包装了某个值,None表示没有值。 object OptionDemo {  def main(args: Array[String]) {    val map = Map("a" -> 1, "b" -> 2)    val v = map.
739 0
|
Java Scala 编译器
Scala的类层级讲解
Scala的类层级 Scala里,每个类都继承自通用的名为Any的超类。 因为所有的类都是Any的子类,所以定义在Any中的方法就是“共同的”方法:它们可以被任何对象调用。 Scala还在层级的底端定义了一些类,如Null和Nothing,扮演通用的子类。
1456 0