面向Java开发人员的Scala指南 - 包和访问修饰符 - 编程入门网
tem.out.println("factorial 0 = 1")
}
}
}
}
}
}
这样您可以节省一两行代码。注意这两个导入过程不能结合:先导入 BigInteger 类本身,再导入该类中的各种成员。 也可以使用 import 来引入其他非常量的成员。例如,考虑一下清单 6 中的数学工具库(或许不一定有什么价值): 清单 6. Enron 的记帐代码
面向Java开发人员的Scala指南 - 包和访问修饰符(4)时间:2011-01-30 Ted Neward使用这个库会越来越觉得麻烦,因为每请求它的一个成员,都需要键入 BizarroMath,但是 Scala 允许将 BizarroMath 的每一个成员导入最高层的词法空间,因此简直就可以把它们当成全局函数来使用(如清单 7所示): 清单 7. 计算 Enron的开支
还有其他的一些构造很有趣,它们允许 Scala 开发人员写出更自然的 2 bizplus 2,但是这些内容本文不予讨论(想了解 Scala 潜在的可以用于其他用途的特性的读者可以看一下 Odersky、Spoon 和 Venners 所著的 Programming in Scala 中谈到的 Scala implicit 构造)。 访问 打包(和导入)是 Scala 封装的一部分,和在 Java 代码中一样,在 Scala 中,打包很大一部分在于以选择性方式限定访问特定成员的能力 — 换句话说,在于 Scala 将特定成员标记为 “公有(public)”、“private(私有)” 或介于两者之间的成员的能力。 Java 语言有四个级别的访问:公有(public)、私有(private)、受保护的(protected )和包级别(它没有任何关键词)访问。Scala: 废除了包级别的限制(在某种程度上) 默认使用 “公有” 指定 “私有” 表示 “只有此作用域可访问” 相反,Scala 定义 “protected” 的方式与在 Java 代码中不同;Java protected 成员对于子类和在其中定义成员的包来说是可访问的,Scala 中则仅有子类可访问。这意味着 Scala 版本的 protected 限制性要比 Java 版本更严格(虽然按理说更加直观)。 然而,Scala 真正区别于 Java 代码的地方是 Scala 中的访问修饰符可以用包名来 “限定”,用以表明直到 哪个访问级别才可以访问成员。例如,如果 BizarroMath 包要将成员访问权限授权给同一包中的其他成员(但不包括子类),可以用清单 8 中的代码来实现: 清单 8. Enron 的记帐代码
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |