インスタンスとは?
インスタンスとは、クラスという型の実態です。クラスをnewキーワードというものを用いて生成し、使用可能な状態になったもののことをインスタンスと呼んでいます。
例えばクラスAにintの_countという変数が宣言されていても、実際にはそれだけでは、intの領域は確保されていません。実際に使える状態にするにはクラスAをnewキーワードで生成してインスタンスにした段階で、intの4バイトなどがPC上に確保され、使用できる状態になります。
クラスというのはただの雛形なので、newキーワードでの生成する回数分、インスタンスが作成され、各インスタンスごとに任意の値を設定できます。
クラスAの値a1をインスタンスB,インスタンスCで生成した場合、それぞれにa1があり、任意の値を設定できる
書き方
インスタンスの生成の仕方は、クラス名、任意の変数名、イコールでつないでクラス名、丸カッコの中に、クラスのコンストラクタで指定されている引数を記述します。
任意の変数名は、メソッド内部で宣言する場合は小文字で始めます。フィールドとして宣言する場合はアンダーバーを付けて頭文字を小文字にします(アンダーバーは任意)。
クラス名に続く引数は、対象のコンストラクタで指定されていない場合は不要です。丸カッコのみを記述します。
クラス名 xxx = new クラス名(引数);
サンプルコード
namespace CS21 { public class ClassA { private int _count = 0; public ClassA(int count) { _count = count; } public void Call() { _count++; } public int GetCount() { return _count; } } }
namespace CS21 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { var classA = new ClassA(10); classA.Call(); classA.Call(); classA.Call(); MessageBox.Show(classA.GetCount().ToString()); } private void button2_Click(object sender, EventArgs e) { var classA = new ClassA(3); classA.Call(); MessageBox.Show(classA.GetCount().ToString()); var classB = new ClassA(3); classB.Call(); classB.Call(); classB.Call(); MessageBox.Show(classB.GetCount().ToString()); } } }
Form1クラスからClassAをnewキーワードで生成し、Callメソッドを数回呼び出している。classAのGetCount関数を呼び出したときにCallされた回数をメッセージボックスに表示している。Button2をクリックしたときのclassAとclassBはどちらもClassAのインスタンスだが、別インスタンスのため、それぞれがCallされた回数を記憶していることが確認できる。
- C#初心者のための基礎!C#文法2割の知識で8割の仕事をする方法!#1
- C#初心者のための基礎!ブロックと名前空間とクラスとメソッドを解説#2
- C#初心者のための基礎!#3値の扱い方。変数と定数をわかりやすく解説!
- C#初心者のための基礎!データ型の種類と使い分けをわかりやすく解説#4
- C#初心者のための基礎!値型と参照型の違いと使い方をわかりやすく解説#5
- C#初心者のための基礎!データ型の変換のやり方をわかりやすく解説#6
- C#初心者のための基礎!配列の使い方をわかりやすく解説#7
- C#初心者のための基礎!動的配列List<T>の使い方をわかりやすく解説#8
- C#初心者のための基礎!演算子の使い方をわかりやすく解説#9
- C#初心者のための基礎!if文とswich文の使い方をわかりやすく解説#10
- C#初心者のための基礎!while文の書き方と使い方をわかりやすく解説#11
- C#初心者のための基礎!do-While文の書き方と使い方をわかりやすく解説#12
- C#初心者のための基礎!for文の書き方と使い方をわかりやすく解説#13
- C#初心者のための基礎!foreach文の書き方と使い方をわかりやすく解説#14
- C#初心者のための基礎!オブジェクト指向の意味をわかりやすく解説#15
- C#初心者のための基礎!クラスの意味と使い方をわかりやすく解説#16
- C#初心者のための基礎!コンストラクタの意味と使い方をわかりやすく解説#17
- C#初心者のための基礎!アクセス修飾子の意味と使い方をわかりやすく解説#18
- C#初心者のための基礎!メソッドの意味と使い方をわかりやすく解説#19
- C#初心者のための基礎!フィールドの意味と使い方をわかりやすく解説#20
- C#初心者のための基礎!インスタンスの意味と使い方をわかりやすく解説#21
- C#初心者のための基礎!カプセル化の意味と使い方をわかりやすく解説#22
- C#初心者のための基礎!プロパティの意味と使い方をわかりやすく解説#23
- C#初心者のための基礎!Disposeとusingの意味と使い方を解説#24
- C#初心者のための基礎!staticスタティックの意味と使い方を解説#25
- C#初心者のための基礎!継承の意味と使い方をわかりやすく解説#26
- C#初心者のための基礎!override(オーバーライド)の使い方を解説#27
- C#初心者のための基礎!ポリモーフィズムとインタフェースの使い方を解説#28
- C#初心者のための基礎!ポリモーフィズムと抽象クラスの使い方を解説#29
- C#初心者のための基礎!例外Exceptionの意味と使い方をわかりやすく解説#30