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

  • 相关阅读:
    2014-7 Andrew Ng 自动化所报告听后感
    转百度前辈的Trados使用心得
    回文数
    整数反转
    无重复字符的最长子串
    vim配色
    mysql 遇到的问题&错误总结
    Ubuntu更换软件源
    各数据类型在64位32位系统占字节数
    不得不说fdm真的好用
  • 原文地址:https://www.cnblogs.com/rollenholt/p/3945596.html
Copyright © 2011-2022 走看看