zoukankan      html  css  js  c++  java
  • 大三寒假学习 spark学习 Scala面向对编程 类(getter和setter方法)

    class counter {
    var value =0//注意这里没有private修饰符,从而让这个变量对外部可见def increment(step: Int): unit= { value +=step}
    def current(): Int= {value}
    object MyCounter{
    def main(args :Array[string]){
    val mycounter = new counter
    println(mycounter.value)//不是用getxxx获取字段的值
    mycounter.value =3//不是用setxxx设置字段的值 mycounter.increment(1)//这里设置步长为1,每次增加1println(mycounter.current) } }

    编译并执行这个文件得到两行结果,第一行是0,第二行是4

    在java中一般会把value设置为私有变量,通过getter和setter调用,那么在scala中如何操作?

    value变成私有字段以后,Scala又没有提供getter和setter方法,怎么可以访问value字段呢?解决方案是,在Scala中,可以通过定义类似getter和setter的方法,分别叫做value和value_=

    class counter {
    private var privatevalue =e1/变成私有字段,并且修改字段名称
    def value = privatevalue//定义一个方法,方法的名称就是原来我们想要的字段的名称def value_=(newValue: Int){
    if(newValue > 0) privatevalue = newValue //只有提供的新值是正数,才允许修改
    }
    def increment(step: Int): unit = { value += step}
    def current(): Int = {value} } object Mycounter{ def main(args:Array[String]){ val mycounter = new counter println(mycounter.value)//打印value的初始值
    mycounter.value = 3//为value设置新的值,会调用value_方法 println(mycounter.value) //打印value的新值 mycounter.increment(1)//这里设置步长为1,每次增加1println(mycounter.current) }
  • 相关阅读:
    Mysql之正则匹配
    定时任务之elastic-job概述
    清晰讲解LSB、MSB和大小端模式及网络字节序
    极光消息推送多环境配置
    基于TSUNG对MQTT进行压力测试-测试结果
    基于TSUNG对MQTT进行压力测试-基础概念温习
    阻塞式/非阻塞式与同步/异步的区别
    干货!Jenkins下配置findbugs、pmd及checkstyle实现代码自动检测
    jar包
    java环境变量及Eclipse自动编译问题
  • 原文地址:https://www.cnblogs.com/fengchuiguobanxia/p/15784543.html
Copyright © 2011-2022 走看看