zoukankan      html  css  js  c++  java
  • 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)有了上面的特性,目前很多新的框架,在进行反射时,也支持对属性的直接反射

  • 相关阅读:
    spring boot三种方式设置跨域
    完整卸载Mysql
    【OBIEE】OBIEE集成Echarts作图
    【OBIEE】BIEE培训(一)
    【Oracle】Oracle物化视图
    【Oracle】oracle11g安装过程提示swap size 检查失败问题
    【Linux】centOS7下安装GUI图形界面
    【Nginx】Linux环境搭建nginx负载
    【oracle】Oracle创建带参数视图
    抢票:搭建github最火的12306项目
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/13262280.html
Copyright © 2011-2022 走看看