ブルーノのC#プログラミング & unity勉強日記

プログラミング素人、ブルーノの自主勉強ノートです。他のプログラミングを勉強したい方の助けになれば幸いです。その他趣味の雑記もしていきたいです

クラスとは

みなさんこんにちは

ナダルのフォームは他の男子プロと比べても独特で力強くてかっこいいですよね。技のフェデラー、力のナダルみたいで見ていて惚れ惚れしてしまいます。さて今回は、C#言語のもっとも大切だというクラスについてやっていきます。

 

クラスとは?

我々が知るクラスという名前はせいぜい学校のクラスくらいですよね。もしくはレベルみたいな意味合いの”最強クラス”とかそこらへんですね。C#言語におけるクラスとは、色々な説明を照らし合わせると「設計図」とか「レシピ」のような意味合いで使われているようです。そしてそのレシピを元に実際に作られたものを「オブジェクト」もしくは「インスタンス」と言います。

今までは簡単にMainメソッドのみのクラスを定義してきました。

f:id:covory10101101276:20170524095715p:plain

こんな具合に。このpublic static void Main()の中だけでやってきましたね。これはMainメソッドを含むBruno008クラスを定義していたわけです。「定義する」とは「中に記述する」ことです。

メソッドのようなクラスを構成するもののことを「メンバ(member)」と言います。メンバはメソッドのように機能を記述するものデータを記述するものの2つに大別されます。データを記述するものを「クラス変数(class variable)」と言います。もっとも単純なクラス変数は「インスタンスフィールド」と呼ばれます。次のように宣言します。

アクセス修飾子 データ型 変数名;

例)public int ScoreOfTest;

 

アクセス修飾子とはそのメンバへのアクセス制限です。基本的な2つを紹介しておきます。

private修飾子....(私的な)という意味で、そのクラスのみからしかアクセスできないようにします

public修飾子.....(公的な)という意味で、どこからでもアクセスできるようにします(つまり無制限)

 ちなみにこの修飾子を省略した場合はprivateとみなされます。

インスタンスフィールドしか持たないクラスは次のように作ります。

class クラス名

{

     アクセス修飾子 データ型 インスタンスフィールド名1;

     アクセス修飾子 データ型 インスタンスフィールド名2;

     ......;

}

例)

class Bruno

{

     public int myage;

     public string myname;

     public double myweight;

}

 

publicなインスタンスフィールドを3つもつBrunoクラスを定義してみました。これだけでは設計図だけなので作られてはいません。生成するには配列などの時のようにnew演算子を使います。

クラス名 インスタンス名;

インスタンス名 = new クラス名();

例)

Bruno b;

b = new Bruno();

 

なんかすごいややこしいですね。例によって宣言と生成を同時に行ってみましょう。

Bruno b = new Bruno();

メンバにアクセスするには大きい単位から順に . (ドット)を使って書いていきます。

インスタンス名.メンバ

例)

b.myage

 では簡単なクラスを作ってそのインスタンス変数に代入するプログラムを組んでみます。

f:id:covory10101101276:20170524103459p:plain

f:id:covory10101101276:20170524103509p:plain

Bruno008 クラスで定義されている public なインスタンス x に Bruno009 のMainメソッドが生成を行ってから10を代入して、それを映し出しています。12行目で新しくオブジェクトを生成していますね。

いかがでしたでしょうか。とりあえず今回はクラスと簡単なインスタンスフィールドの生成をまとめてみました。次回は実際の動き(機能)を定めるメソッドについてまとめていきたいと思います。