文档章节

Why does Scala not provide any static modifier?

翟志军
 翟志军
发布于 2015/02/23 21:25
字数 358
阅读 128
收藏 0

Scala doesn't provide any static modifier, and that has to do with the design goal of building a pure object-oriented language where every value is an object, every operation is a method call, and every variable is a member of some object. Having static doesn't fit well with that goal, and along with that there are plenty of downsides to using static in the code. Instead, Scala supports something called singleton objects.

Scala没有提供任何的static修饰符,目的是为了创建一个纯的面向对象语言,任何值都是一个对象,任何操作都是对象的方法调用,任何变量都是某个对象的成员。

但static修饰符不符合这一目的,而且在代码中不使用static已是大势所趋。Scala使用单例object来代替static.

虽然,这样说了,我还不是很明白。我从《面向对象分析与设计》中看到“面向对象编程”的定义:

面向对象编程是一种实现方法,在这种方法中,程序被组织成许多相互协作的对象,每个对象代表某个类的一个实例,而类则属于一个通过继承关系形成的层次结构

这样说来,我倒觉得“任何操作都是对象的方法调用”这点不是面向对象编程的必要条件。所以,拿这点来说不支持static,似乎有些牵强。

© 著作权归作者所有

共有 人打赏支持
翟志军

翟志军

粉丝 339
博文 76
码字总数 79851
作品 2
深圳
程序员
RxJava 1.0.14 发布,现已提供下载

.Net响应式编程框架Rx的Java版本开源实现,是一种JVM语言,有Groovy, Clojure, Scala and JRuby版本的实现 此版本更新内容如下: Pull 2963 Set of standard producers and updated queue im...

oschina
2015/08/17
2.5K
1
编程技巧:使用整数同时进行多个true|false判断(修改版)

Scene 情景假设 情景一:银行账户的快速判断; 假设需要判断某银行用户的其中一个账号(profileA),币种(Currency)为人民币(CNY),余额是否大于1,0000,然后进行某业务逻辑处理。 情景二...

大鱼BIG_FISH
2015/11/06
0
0
[Lucene.Net] 多线程操作建议和[Lucene.Net] 分页显示

对于并发,Lucene.Net 遵循以下规则: 1. 允许任意多的读操作并发,即任意数量用户可同时对同一索引做检索操作。 2. 即便正在进行索引修改操作(索引优化、添加文档、删除文档),依然允许任意...

长平狐
2013/06/17
133
0
When Monolithic Is the Way: Play vs. Spring Boot vs. Grails

Nowadays, when we are going to start a new project, the developer starts thinking about the technology, and usually they come up with something like: microservices, RESTFul, Act......

Marini Fabio
2017/12/20
0
0
深入理解Java Proxy机制

动态代理其实就是java.lang.reflect.Proxy类动态的根据您指定的所有接口生成一个class byte,该class会继承Proxy类,并实现所有你指定的接口(您在参数中传入的接口数组);然后再利用您指定...

milne
2015/08/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

7月13日任务 for、while、break跳出、ontinue结束、exit退出

20.10 for循环 语法:for 变量名 in 条件; do …; done 案例1:计算1到100的和 #!/bin/bashsum=0for i in `seq 1 100`do    sum=$[$sum+$i]    echo $idoneecho $sum 案例2...

吕湘颖
37分钟前
0
0
qemu增量镜像的好处

可以快速恢复,相当于快照的功能。

simpower
44分钟前
0
0
Python3_Appium_QQ 实战

Python3_Appium实战 -海盐 APPium移动自动化测试 样例中 测试的 app 使用的是 QQ; Appium介绍 Appium 是一个自动化测试开源工具,支持 iOS 平台和 Android 平台上的原生应用,web 应用和混合...

海盐宝宝
44分钟前
0
0
内网穿透利器-ngrok的图文安装

使用场景: 在做微信开发或是调银行或支付宝等支付系统的时候,本地想联调但是对方需要可以访问的域名或是外网IP才可以。但是,在本地如果不在路由器上做映射或是公司没有固定的外网IP。这种...

中凯_凯哥java
49分钟前
2
1
归约与分组 - 读《Java 8实战》

区分Collection,Collector和collect 代码中用到的类与方法用红框标出,可从git库中查看 收集器用作高级归约 // 按货币对交易进行分组Map<Currency, List<Transaction>> currencyListMap = g...

yysue
50分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部