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 导入excel 或 .csv
    导出Excel
    jQuery.ajax
    在web项目中配置log4j
    数据分析入门
    jdbc的配置(更新中)
    Maven中项目的启动
    Maven中的配置文件
    Maven的插件管理
    Maven的依赖管理
  • 原文地址:https://www.cnblogs.com/fengchuiguobanxia/p/15784543.html
Copyright © 2011-2022 走看看