封装注意事项|学习笔记

简介: 快速学习封装注意事项。

开发者学堂课程【Scala 核心编程-基础封装注意事项】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/609/detail/8967


封装注意事项

 

内容介绍

一、细节1

二、细节2

三、细节3

四、细节4

 

本节主要讲述 Scala 封装的注意事项和细节,前面讲的 Scala 的封装特性和 Java 是一样的,下面将介绍Scala封装的其他特点。


一、细节1

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

在 scala 中加入私有的东西,会对将来生成的方法产生最大影响,案例中只有 private 和 public。
案例:
public class Monster {  private int age = 1;  private String name =“;   private double sal = 0.01D;   public int age ()    {    return this.age; }public void age_$eq(int x$1) { this.age = x$1;  }private String name() { return this.name; }private void name_$eq (String x$1) { this.name = x$1; }    public double sa1() ( return this.sal; }  public void sa1_$eq(double x$1) { this.sal = x$1;}


二、细节2

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


三、细节3

从形式上看 dog.food 直接访问属性,实质上底层仍然是访问的方法,从反编译的代码中可以看出。

这个特点产生了一个新的知识点,叫做属性的重启。在 Java 中可以直接访问属性,而在 scala 中都是通过底层的方法访问属性。


四、细节4

通过上面的特性,目前很多新的框架,在进行反射时,也支持对属性的直接反射,在底层会生成对应的方法。

直接写个属性就能对其进行反射,属性全是私有的,方法中 public 是私有的。

相关文章
|
7月前
|
小程序 JavaScript
小程序bindtap 和 catchtap 的区别以及如何使用
小程序bindtap 和 catchtap 的区别以及如何使用
177 0
|
JavaScript 前端开发 索引
带你读《现代TypeScript高级教程》四、接口和类(1)
带你读《现代TypeScript高级教程》四、接口和类(1)
|
JavaScript
带你读《现代TypeScript高级教程》四、接口和类(2)
带你读《现代TypeScript高级教程》四、接口和类(2)
|
编译器 Scala 开发者
函数使用注意事项和细节2|学习笔记
快速学习函数使用注意事项和细节2。
|
Scala 开发者
包对象注意事项和细节说明|学习笔记
快速学习包对象注意事项和细节说明。
包对象注意事项和细节说明|学习笔记
|
开发者 Python
继承的注意事项 | 学习笔记
快速学习继承的注意事项,介绍了继承的注意事项系统机制, 以及在实际应用过程中如何使用。
继承的注意事项 | 学习笔记
|
网络协议 测试技术 Go
Go 接口注意事项和细节(1) | 学习笔记
快速学习 Go 接口注意事项和细节(1)
Go 接口注意事项和细节(1) | 学习笔记
|
网络协议 测试技术 Go
Go 接口注意事项和细节(2) | 学习笔记
快速学习 Go 接口注意事项和细节(2)
Go 接口注意事项和细节(2) | 学习笔记
|
Java 编译器 Scala
函数使用注意事项和细节3|学习笔记
快速学习函数使用注意事项和细节3。
|
Java 编译器 Scala
函数使用注意事项和细节1|学习笔记
快速学习函数使用注意事项和细节1。