原文:scala学习手记16 – scala中的static

前面两节学了scala的对象和伴生对象,这两个在使用的时候很有些java的静态成员的意思。 scala中没有静态字段和静态方法。静态成员会破坏scala所支持的完整的面向对象模型。不过可以通过伴生对象实现对scala的类一级的操作。 回过头来再看一遍那个Marker的例子,略做了一些调整: 在调整后的代码里,使用def关键字为Marker对象声明了一个primaryColors方法,这个方法返回了 ...

2016-06-20 22:35 0 7481 推荐指数:

查看详情

scala学习手记14 - 单例对象

java的单例模式都很熟悉了:简单地说就是一个类只能有一个实例。在scala创建单例对象非常简单,创建类时使用object关键字替换class即可。因为单例类无法初始化,所以不能向它的主构造函数传递参数。 下面是一个单例的示例: 其中的MarkerFactory就是一个单例。单例 ...

Sat Jun 18 06:51:00 CST 2016 0 1760
scala学习手记20 - 方法返回类型推断

除了推演变量的类型,scala也会推演方法的返回类型。不过这里有一处需要注意:方法返回类型的推演依赖于方法的定义方式。如果用等号“=”定义方法,scala就会推演方法返回类型;否则,它就认为方法的返回为void。看一个例子: 其中方法一是按照习惯方式定义的,方法二则是使用等号定义 ...

Sun Jun 26 07:52:00 CST 2016 0 1992
scala学习手记5 - 元组与多重赋值

假定要在一个方法返回多个值。比如需要返回一个人的名、姓和邮箱地址。在Java中最常用的方法是定义一个Person类,其中包括相对应的字段;还有些不常用的方法就是返回一个集合或数组,拿到结果后再进行循环取值。在Scala我们又多一个选择:元组。 元组是一个不可变的对象序列,可以使用逗号分隔的值 ...

Sun Jun 05 07:33:00 CST 2016 0 2854
scala学习手记21 - 传递变长参数

在Java是可以使用变长参数的,如下面的方法: 在scala也可以使用变长参数。和java一样,也是只有最后一个参数可以接收可变长度的参数。使用方式是在参数类型后使用特殊符号“*”,如下面的max()方法: foldLeft是TraversableOnce类的一个方法 ...

Sun Jul 17 07:00:00 CST 2016 0 1923
scala学习手记18 - Any和Nothing

Any 前面已经有两次提到过:在scala,Any类是所有类的超类。 Any有两个子类:AnyVal和AnyRef。对应Java直接类型的scala封装类,如Int、Double等,AnyVal是它们的基类;对应引用类型,AnyRef是它们的基类。 scala,所有类的关系可以用下面这张 ...

Fri Jun 24 05:58:00 CST 2016 0 5407
scala学习手记12 - 字段、方法和构造函数

在上一节创建了一个scala类,如果没有更多的方法,scala类的定义还可以更简单一些,看一下下面这个CreditCard类的定义: 是的,只用一行就完成了类的定义,连大括号都不需要。 因为scala也是运行在JVM上,可以考虑以java的方式来看看编译后的类文件。查看的方式还是比较 ...

Thu Jun 16 06:36:00 CST 2016 0 2422
scala学习手记6 - 字符串与多行原始字符串

scala的字符串类就是java的java.lang.String类。不过scala也为String提供了一个富封装类:scala.runtime.RichString。 scala可以将java.lang.String类自动转换为scala.runtime.RichString类 ...

Mon Jun 06 06:42:00 CST 2016 0 4816
Scala学习(五)---Scala的类

Scala的类 摘要: 在本篇,你将会学习如何用Scala实现类。如果你了解Java或C++的类,你不会觉得这有多难,并且你会很享受Scala更加精简的表示法带来的便利。本篇的要点包括: 1. 类 ...

Mon Jun 29 00:26:00 CST 2015 0 7793
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM