Kotlin-visibility-control
Kotlin-可視性コントロール
この章では、Kotlin言語で利用可能なさまざまな修飾子について学習します。 *アクセス修飾子*は、アプリケーションで使用される変数、メソッド、およびクラスの使用を制限するために使用されます。 他のOOPプログラミング言語と同様に、この修飾子はクラスヘッダーやメソッド宣言などの複数の場所で適用できます。 Kotlinには4つのアクセス修飾子があります。
非公開
クラス、メソッド、およびパッケージは、プライベート修飾子で宣言できます。 何かがプライベートとして宣言されると、その直接のスコープ内でアクセス可能になります。 たとえば、その特定のファイル内でプライベートパッケージにアクセスできます。 プライベートクラスまたはインターフェイスには、そのデータメンバーなどのみがアクセスできます。
private class privateExample {
private val i = 1
private val doSomething() {
}
}
上記の例では、クラス*“ privateExample” *と変数iの両方は、同じKotlinファイルでのみアクセスできます。これらは、宣言ブロックですべてプライベートとして宣言されているため、言及されています。
保護されています
保護はKotlinの別のアクセス修飾子です。これは、パッケージを保護できないため、現在トップレベルの宣言には使用できません。 保護されたクラスまたはインターフェイスは、そのサブクラスのみに表示されます。
class A() {
protected val i = 1
}
class B : A() {
fun getValue() : Int {
return i
}
}
上記の例では、変数*“ i” *は保護されていると宣言されているため、そのサブクラスにのみ表示されます。
内部
内部は、Kotlinで導入された新しく追加された修飾子です。 何かが内部としてマークされている場合、その特定のフィールドは内部フィールドにあります。 内部パッケージは、実装されているモジュール内でのみ表示されます。 内部クラスインターフェイスは、同じパッケージまたはモジュール内に存在する他のクラスによってのみ表示されます。 次の例では、内部メソッドを実装する方法を説明します。
class internalExample {
internal val i = 1
internal fun doSomething() {
}
}
上記の例では、「doSomething」という名前のメソッドと変数が内部として記述されているため、これらの2つのフィールドは、宣言されたパッケージ内でのみアクセスできます。
パブリック
パブリック修飾子は、プロジェクトワークスペースのどこからでもアクセスできます。 アクセス修飾子が指定されていない場合、デフォルトでパブリックスコープになります。 これまでのすべての例で、修飾子については言及していません。したがって、それらはすべてパブリックスコープに含まれます。 以下は、パブリック変数またはメソッドの宣言方法についてさらに理解するための例です。
class publicExample {
val i = 1
fun doSomething() {
}
}
上記の例では、修飾子について言及していないため、これらのメソッドと変数はすべてデフォルトでpublicです。