アクセス制御
アクセス制御
「アクセス制御」はCoddyKit上の無料Swift Academyレッスンです。 これはレッスン1/1です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwift Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Swift Academyコースには全1レッスンが含まれています。
導入
こんにちは。
アクセス制御は、他のソースファイルやモジュールのコードから、コードの一部へのアクセスを制限します。
モジュール:モジュールとは、フレームワークやアプリケーションのコードをまとめた単位です。
1つのモジュールには、複数のソースコードファイルが含まれます。
ソースファイル:
ソースファイルとは、モジュール内にある1つのソースコードファイルです。
アクセスレベル
型のAL(アクセスレベル)をprivateとして定義すると、その型に属するすべての要素のALもprivateになります。
続き
privateアクセス指定子を変数やメソッドなどの前に付けると、それらは定義されたスコープ内でのみ完全に利用できるようになります。
fileprivateアクセス指定子を使うと、変数が定義されたスコープに加えて、同じファイル内で定義された別のclassやextensionからもアクセスできます。
特に、extensionを同じソースファイル内に定義した場合、privateとして定義されたオブジェクトにはアクセスできません。このような場合にはfileprivateが適しています。
public
publicアクセス指定子を付けた要素はモジュール全体からアクセスできますが、2つのモジュールを使用する場合、サブクラスやスコープに関して制限されることがあります。
また、publicアクセス指定子を付けて定義した変数やメソッドにアクセスできない場合があります。
open
publicとして定義されたクラスは、別のモジュールでサブクラス化できず、そのクラスに含まれるメソッドもオーバーライドできません。
そのため、publicよりも柔軟なアクセス指定子が必要になります。
簡単に言えば、openアクセス指定子は「publicよりも公開範囲が広い」と表現できます。
続き
したがって、2つのモジュールを使用し、一方のモジュールからもう一方のモジュールの変数やメソッドにアクセスしたい場合は、簡単です。スーパークラスとして定義するクラスの先頭にopenアクセス指定子を付けます。
同様に、オーバーライドしたいメソッドをopenとして定義すれば十分です。
internal
enum以外の型では、型をpublicとして定義すると、その要素は自動的にinternalになります。一方、enum型をpublicとして定義すると、enumの要素はpublicになります。
public enum Direction { case North, South, East, West }
//each case is also has public access level.サブクラス化
サブクラス化
任意のクラスのサブクラスを作成できます。そのクラスが該当するコンテキストからアクセス可能であれば十分です。
サブクラスに、親クラスよりも広いアクセスレベルを設定することはできません。親クラスが子クラスを内包しているためです。
オーバーライドしたメソッドには、親クラスの元のメソッドよりも広いアクセスレベルを設定できます。
public class ClassA {
//method private tanimlanmis
private func aPrivateMethod() {}
internal func anInternalMethod() {}
}
internal class ClassB: ClassA {
// The overridden method is defined internally. Access level has increased even more.
override internal func anInternalMethod() {}
}続き
定数、変数、プロパティ、サブスクリプトのアクセスレベル
定数、変数、プロパティには、関連付けられた型よりも制限の緩いアクセスレベルを設定できません。publicプロパティは、publicクラスと同じように扱われます。
定数、変数、プロパティ、サブスクリプトのgetterとsetterも、それぞれが属する型と同じアクセスレベルになります。
おめでとうございます
おめでとうございます 🎉
このレッスンでは、Swiftのアクセス制御について学びました。
これでSwift初心者向けコースは完了です。
試験を始めて、修了証を取得しましょう。 🌟

よくある質問
「アクセス制御」レッスンは無料ですか?
はい。「アクセス制御」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Swift Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Swift Academyコースには全1レッスンが含まれています。
「アクセス制御」で何を学びますか?
アクセス制御 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Swift Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのSwift Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/1です。
「アクセス制御」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このSwift Academyレッスンでコードを書いて実行できますか?
はい。すべてのSwift Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。