zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    论文摘要
    memset/memcpy/strcpy
    error C2259: 'CException' : cannot instantiate abstract class解决
    IplImage 结构
    图像的深度和通道概念
    Oracle11g安装教程
    LSTM理解
    卷积神经网络CNN
    常见激活函数的介绍和总结
    TFIDF算法介绍
  • 原文地址:https://www.cnblogs.com/rollenholt/p/3945596.html
Copyright © 2011-2022 走看看