2018年09月19日
【unity】関数に付いてるpublic, private, protected… それらは「アクセス修飾子」と言うらしい。
他の方のブログとかソースコードとか
見ていると、たまに
「protected」とか
「virtual」とか
そんなのが「void」の前に
付いてるのを見かけます。
何なんでしょうかね、あれ。
気になったので調べてみたり。
あの「voidの前に付いてるやつ」は
アクセス修飾子と言うらしいです。
アクセス修飾子の種類としては、
・public
・private
・protected
・internal
代表的なのはこの4つくらいですかね。
というか、これくらいしか知らないです。
これら以外見た事ありません。
…と、これらを上手く使うことで、
「スクリプトへのアクセスの制限」が
掛けられる みたいです。
………正確には、「クラスへの」ですが…。
外部からのアクセスに強くできたりする訳ですね。
確か、「public」と「private」は
記事を書いた気がします。
あまり覚えてませんが…。
まぁ、今回は関数での使い方として
紹介していきたいと思います。
他のスクリプトからアクセス出来ます。
英単語も一緒に覚えましょう。
public 「公共の」 という意味です。
ですので、public は開放的なんですね。
いろんな場所からアクセスできます。
あと、「public」は変数にも付けたりしますよね。
public int i;
みたいな感じで。
関数も使い方は同じで、
TestScript_public.cs
と書きます。
あとは、別のスクリプトから
アクセスするだけですね。
TestScript_public.Test();
これでよし。
これで呼び出せます。
書き終わって思ったんですが、これだと
アクセスの仕方の紹介じゃないですか…。
……ま、とにかく、 public は
外部スクリプトからアクセス出来る
ということです。
この修飾子が付いている関数(または変数)は
そのスクリプト(正確にはクラス!)からしか
アクセス出来ないというやつです。
TestScript_private.cs
このように void の前に「private」が付いていると
外部からアクセスできません。
仮に
TestScript_private.Test();
と書いたとしても、
「そんな関数ねぇよ」とスクリプトにエラーが出ます。
これを付けるメリットとしては、
このクラス内でしか実行できない訳ですから、
publicのようにあちこちに飛んで実行する、ということが
無く、バグが起こりにくいという優れもの!
使い方に慣れれば、良く役に立ちます。
internalは、調べてみましたが
よく分からなかったです…。
「現在のアセンブリに
アクセスが制限されます」
とか書いてあるんですが。
アセンブリってなんですか。
c#のアセンブリをググっても
MicroSoftの.NET?とかいうの出てくるし…。
一応、分かったことは
「privateと似てる」
ということくらいですかね。
外部から → ✕
内部から → ○
こんな所しか分かりませんでした!
誰か助けて!
protectedは、全くの外部からは
アクセスを受け付けないようです。
派生クラス、所謂クラス継承したクラスですね。
分からない人には、本当に
分からないと思います…。
僕もプログラミングを始めた頃は、
「クラスってなんですか」
とか思ってたものです。
クラス継承に関しては、また今度書こうかな…。
クラス継承が何か分かっている人は、
「派生クラスからのみアクセスの許可」
の意味が分かると思います!
こんな所ですかね。
一通り紹介は終わったと思います!
というか、更新遅れてすみません!
思った以上に書くのに時間が…。
………………頑張ります。
スポンサードリンク
見ていると、たまに
「protected」とか
「virtual」とか
そんなのが「void」の前に
付いてるのを見かけます。
何なんでしょうかね、あれ。
気になったので調べてみたり。
アクセス修飾子
あの「voidの前に付いてるやつ」は
アクセス修飾子と言うらしいです。
アクセス修飾子の種類としては、
・public
・private
・protected
・internal
代表的なのはこの4つくらいですかね。
というか、これくらいしか知らないです。
これら以外見た事ありません。
…と、これらを上手く使うことで、
「スクリプトへのアクセスの制限」が
掛けられる みたいです。
………正確には、「クラスへの」ですが…。
外部からのアクセスに強くできたりする訳ですね。
確か、「public」と「private」は
記事を書いた気がします。
あまり覚えてませんが…。
まぁ、今回は関数での使い方として
紹介していきたいと思います。
public void 関数 () {}
他のスクリプトからアクセス出来ます。
英単語も一緒に覚えましょう。
public 「公共の」 という意味です。
ですので、public は開放的なんですね。
いろんな場所からアクセスできます。
あと、「public」は変数にも付けたりしますよね。
public int i;
みたいな感じで。
関数も使い方は同じで、
TestScript_public.cs
public void Test () {
}
と書きます。
あとは、別のスクリプトから
アクセスするだけですね。
TestScript_public.Test();
これでよし。
これで呼び出せます。
書き終わって思ったんですが、これだと
アクセスの仕方の紹介じゃないですか…。
……ま、とにかく、 public は
外部スクリプトからアクセス出来る
ということです。
private void 関数 () {}
この修飾子が付いている関数(または変数)は
そのスクリプト(正確にはクラス!)からしか
アクセス出来ないというやつです。
TestScript_private.cs
private void Test () {
}
このように void の前に「private」が付いていると
外部からアクセスできません。
仮に
TestScript_private.Test();
と書いたとしても、
「そんな関数ねぇよ」とスクリプトにエラーが出ます。
これを付けるメリットとしては、
このクラス内でしか実行できない訳ですから、
publicのようにあちこちに飛んで実行する、ということが
無く、バグが起こりにくいという優れもの!
使い方に慣れれば、良く役に立ちます。
internal void 関数 () {}
internalは、調べてみましたが
よく分からなかったです…。
「現在のアセンブリに
アクセスが制限されます」
とか書いてあるんですが。
アセンブリってなんですか。
c#のアセンブリをググっても
MicroSoftの.NET?とかいうの出てくるし…。
一応、分かったことは
「privateと似てる」
ということくらいですかね。
外部から → ✕
内部から → ○
こんな所しか分かりませんでした!
誰か助けて!
protected void 関数 () {}
protectedは、全くの外部からは
アクセスを受け付けないようです。
派生クラス、所謂クラス継承したクラスですね。
分からない人には、本当に
分からないと思います…。
僕もプログラミングを始めた頃は、
「クラスってなんですか」
とか思ってたものです。
クラス継承に関しては、また今度書こうかな…。
クラス継承が何か分かっている人は、
「派生クラスからのみアクセスの許可」
の意味が分かると思います!
あとがき
こんな所ですかね。
一通り紹介は終わったと思います!
というか、更新遅れてすみません!
思った以上に書くのに時間が…。
………………頑張ります。
スポンサードリンク
【このカテゴリーの最新記事】
-
no image
この記事へのトラックバックURL
https://fanblogs.jp/tb/8111457
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック
※ ブログに表示されるのは、主の承認が必要なので時間がかかります!
コメントに気づかない場合もありますので、返信が遅れる場合も...