0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

Kotlin, Swiftや他言語で開発を行っていると、正確なアクセス修飾子の意味について忘れることがある。
都度調べていたが、特によく使うKotlin/Swiftの両言語のアクセス修飾子についてまとめてみる。

アクセス修飾子

Kotlin

アクセス修飾子 意味
public どのクラスからでも見れる。デフォルト ※1
internal 同一モジュールからならどこからでも見れる ※2
private クラス内にのみ公開
protected サブクラスに公開

※1. Kotlinの場合、アクセス修飾子を省略するとpublic扱いとなる。デフォルトはpublic
※2. アプリ内(=同一パッケージのはず)であればpublicもinternal同じ意味となる。
  例えば、ライブラリ化したときにhogehoge.jarを作ったとして、
  hogehogeライブラリ内にinternalな変数へはライブラリ外からはアクセスできないことになる。

Swift

アクセス修飾子 意味
open どのファイル/モジュールからでもアクセス可能。継承やオーバーライドも可能。
public どのファイル/モジュールからでもアクセス可能。ただし、継承やオーバーライドは不可
internal 同一モジュールからならどこからでも見れる デフォルト ※3
fileprivate 同じファイル内であればアクセスすることができる
private クラス内にのみ公開

※3. Swiftの場合、アクセス修飾子を省略するとinternal扱いとなる。デフォルトはinternal

最後に

デフォルトのアクセス修飾子が異なったり、微妙に言語仕様が異なるので注意が必要。
毎回忘れて調べ直すことになっていたので、まとめることができて良かった。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?