• 大三寒假学习 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) }
  • 相关阅读:
    java 接口和抽象类的一个最大的区别
    python 简化数据结构的初始化二 支持关键字参数
    python 简化数据结构的初始化一
    python @staticmethod
    python @classmethod
    codeskulptor hosts
    An Introduction to Interactive Programming in Python (Part 1) -- Week 2_2 练习
    An Introduction to Interactive Programming in Python (Part 1) -- Week 2_1 练习
    mysql-5.7.14-winx64免安装版在win10下的详细配置过程
    python 反模式
  • 原文地址:https://www.cnblogs.com/fengchuiguobanxia/p/15784543.html
Copyright © 2020-2023  润新知