99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

Scala 訪問控制修飾符

2018-09-28 18:17 更新

訪問控制修飾符

包的成員,類或?qū)ο罂梢允褂迷L問控制修飾符,比如 private 和 protected 來修飾,通過這些修飾符可以控制其他部分對這些類,對象的訪問。Scala 和訪問控制大體上和 Java 類似,但也有些重要的不同,本篇將介紹這些。

私有成員

Scala 的私有成員和 Java 類似,一個使用 private 修飾過的類或?qū)ο蟪蓡T,只能在該類或?qū)ο笾性L問,在 Scala 中,也可以在嵌套的類或?qū)ο笾惺褂?。比如?/p>

class Outer{
  class Inner{
    private def f(){
      println("f")
    }
    class InnerMost{
      f() //OK
    }
  }
  (new Inner).f();// error: f is not accessible
}

在Scala 中,(new Inner).f()是不合法的,因為它是在 Inner 中定義的私有類型,而在 InnerMos t 中訪問 f 卻是合法的,這是因為 InnerMost 是包含在 Inner 的定義中(子嵌套類型)。 在 Java 語言中,兩種訪問都是可以的。Java 允許外部類型訪問其包含的嵌套類型的私有成員。

保護成員

和私有成員類似,Scala 的訪問控制比 Java 來說也是稍顯嚴格些。在 Scala 中,由 Protected 定義的成員只能由定義該成員和其派生類型訪問。而在 Java 中,由 Protected 定義的成員可以由同一個包中的其它類型訪問。在 Scala 中,可以通過其它方式來實現(xiàn)這種功能。

下面為 protected 的一個例子:

class p{
  class Super{
    protected def f() {
      println("f")
    }
  }
  class Sub extends Super{
    f()
  }
  class Other{
    (new Super).f() //error: f is not accessible
  }
}

公開成員

public 訪問控制為 Scala 定義的缺省方式,所有沒有使用 private 和 protected 修飾的成員都是“公開的”,可以被自由訪問。Scala 不需要使用 public 來指定“公開訪問”修飾符。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號