• Scala 面向对象(五):面向对象的特征一:封装性


    1 封装介绍

    封装(encapsulation)就是把抽象出的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作。

    封装的理解和好处

    隐藏实现细节 ;提可以对数据进行验证,保证安全合理

    如何体现封装

    对类中的属性进行封装; 通过成员方法,包实现封装

    2 封装的实现步骤

    1)将属性进行私有化

    2)提供一个公共的set方法,用于对属性判断并赋值

    def setXxx(参数名 : 类型) : Unit = { //加入数据验证的业务逻辑
    属性 = 参数名
    }

    3)提供一个公共的get方法,用于获取属性的值

    def getXxx() [: 返回类型] = {

    return 属性

    }

    Scala封装的注意事项和细节

    1) Scala中为了简化代码的开发,当声明属性时,本身就自动提供了对应setter/getter方法,如果属性声明为private的,那么自动生成的setter/getter方法也是private的,如果属性省略访问权限修饰符,那么自动生成的setter/getter方法是public的

    2)因此我们如果只是对一个属性进行简单的set和get ,只要声明一下该属性(属性使用默认访问修饰符) 不用写专门的getset,默认会创建,访问时,直接对象.变量。这样也是为了保持访问一致性 

    3)从形式上看 dog.food 直接访问属性,其实底层仍然是访问的方法, 看一下反编译的代码就明白

    4)有了上面的特性,目前很多新的框架,在进行反射时,也支持对属性的直接反射

  • 相关阅读:
    JMeter结构体系及运行原理
    maven pom配置文件样本
    django踩坑
    spring踩坑
    蓝牙连上电脑没声音
    XML 解析 & 特殊字符报错
    IDEA下maven工程的classpath
    mysql踩坑
    工作日记-9 远程接口调用注意点
    工作日记-8 ajax缓存
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13309057.html
Copyright © 2020-2023  润新知