首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Programming in Scala 2nd 读书笔记 三

2012-10-08 
Programming in Scala 2nd 读书笔记 3Composition and Inheritance继承类或者抽象类时重写方法需要加上ove

Programming in Scala 2nd 读书笔记 3
Composition and Inheritance

继承类或者抽象类时重写方法需要加上override关键字
实现trait里的方法可以不需要

class声明时直接在()里用val标记参数,可以直接生成对应的字段并被访问

无参数的方法

package bobsrocketspackage navigation {private[bobsrockets] class Navigator {protected[navigation] def useStarChart() {}class LegOfJourney {private[Navigator] val distance = 100}private[this] var speed = 200}}package launch {import navigation._object Vehicle {private[launch] val guide = new Navigator}}


Table 13.1 · Effects of private qualifiers on LegOfJourney.distance

no access modifier public access
private[bobsrockets] access within outer package
private[navigation] same as package visibility in Java
private[Navigator] same as private in Java
private[LegOfJourney] same as private in Scala
private[this] access only from same object

private[]的声明在编译后的字节码里都是public,因此可能会存在一些问题

另:关于内部类和外部类这章里没有介绍,简单实验了下应该和java是一样的
不过静态内部类需要声明到companion object里面,即同名的object声明类里


热点排行