C#を独学で学んでいる者です。
わからない部分が出てきたので、ご教授願います。
もしかしたら以前の質問と重複してしまう部分があるかもしれませんが、お手柔らかにお願いします。
『UnityではじめるC#』という入門書で下記のプログラミングを打ちました。
using UnityEngine; using System.Collections; public class Lesson1 : MonoBehaviour { // Use this for initialization void Start () { Person p = new Person (); p.name = "太郎"; p.show (); } // Update is called once per frame void Update () { } } class Person { public string name; //ここは省略されていると前回の質問で知りました。 public Person () { return; } public void show () { Debug.Log("私の名前は" + this.name); } }
これで、プログラミング下部のPersonクラスのインスタンスを作ろうという項目を学んでいたのですが、入門書ではプログラミングを打ってエラーが無かったら次に行くという感じで項目が終わってしまい、肝心のなぜこうなるという説明が無く、いまいち何を学んだのかわかりませんでした。
そこで今回、理解できなかった点を絞り、具体的に質問したいのは以下の4点です。
1.Personクラスを作った後、StartメソッドでPerson()(コンストラクタ?)にnew演算子を付けて、Person型・変数pに代入したのは、なぜなのでしょうか?
入門書では、C#はクラスを設計図として、そのクラスから作った実体のことをインスタンスというと書かれてあり、このプログラミングが最終的に示す答えとして「私の名前は太郎」となる経緯を打った式だと思うのですが、
まずPersonクラスを作り
public string nameというメンバー変数を打ち
そのあとなぜクラスをインスタンス化させるnew演算子をPerson()に付けたのでしょうか、これが理解できませんでした。
その後は、Personクラスを型として変数pにnew Person ()を代入するということだったと思います。
2.またその後、変数pとメンバー変数nameをドット演算子でくっつけているのですが、これは変数pがクラス、メンバー変数nameがメソッドとなり、nameメソッドがpクラスの中で定義されているという解釈で正しいでしょうか?
3.showメソッドとは、どのような用途なのでしょうか?インターネットで調べても機械翻訳で書かれた説明文しか見つからず、機械翻訳の説明では読んでもわけがわかりませんでした。
4.最後にp.show ();がStartメソッド内で、showメソッドがPersonクラス内で書かれているのですが、これにはどんな意味があるのでしょうか?
なぜp.show ();が上で、showメソッドが下なのか。逆ではだめな理由などがあるのでしょうか?
以上が入門書を読んでいてもわからなかった点になります。
質問が多過ぎると思うのですが、どうか助けていただけると幸いです。
何卒よろしくお願いいたします。
回答6件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/14 04:30 編集
2018/07/14 05:05