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

  • 相关阅读:
    指针类型
    集合类型
    VMware打开虚拟机没反应的解决方案(全面汇总)
    redis主从|哨兵|集群模式
    MYSQL一次千万级连表查询优化
    StackExchange.Redis通用封装类分享
    Redis-五种数据类型解析
    Redis并发问题
    C#委托和事件
    Invoke 和 BeginInvoke 的区别
  • 原文地址:https://www.cnblogs.com/rollenholt/p/3945596.html
Copyright © 2011-2022 走看看