「C Sharp」の版間の差分
ナビゲーションに移動
検索に移動
→クラス: また、別々のインスタンスに属する変数は、それぞれ別の変数です。単に、「クラス」とは型の情報や初期値などを提供するだけです。つまりクラスは、変数の集まりをつくるときのメモ帳です。
(→メソッド: 上記の説明では不要だってので説明省略しましたが、C#のメソッドは戻り値(返却値、返り値)をひとつ持てます。C++などと同様です。) |
(→クラス: また、別々のインスタンスに属する変数は、それぞれ別の変数です。単に、「クラス」とは型の情報や初期値などを提供するだけです。つまりクラスは、変数の集まりをつくるときのメモ帳です。) |
||
メンバは public にアクセス修飾子を指定しないかぎり、基本的には直接はアクセスできない。
クラス側の変数宣言において、static 宣言されていない変数は、インスタンスを作成しないかぎり、使うことは出来ません。
また、別々のインスタンスに属する変数は、それぞれ別の変数です。単に、「クラス」とは型の情報や初期値などを提供するだけです。つまりクラスは、変数の集まりをつくるときのメモ帳です。
個々の変数の実体は、原則的に、(クラス側ではなく)インスタンス側でされています。
試しに、複数のインスタンスを作って確認してみましょう。
コード例<syntaxhighlight lang="csharp">
using System;
class testclass {
public string name;
public int price;
}
public class sample {
public static void Main(string[] args) {
testclass a = new testclass() ;
a.name = "牛乳";
a.price = 140;
Console.WriteLine(a.name);
Console.WriteLine(a.price);
Console.WriteLine();
// 別インスタンスを作成
testclass b = new testclass() ;
b.name = "みかんジュース";
b.price = 120;
Console.WriteLine(b.name);
Console.WriteLine(b.price);
Console.WriteLine();
// 牛乳の情報が残ってるかの確認
Console.WriteLine(a.name);
Console.WriteLine(a.price);
Console.WriteLine();
}
}
</syntaxhighlight>
; 実行結果 :<syntaxhighlight lang="text">
牛乳
140
みかんジュース
120
牛乳
140
</syntaxhighlight>
このように、最低でも宣言したインスタンスのぶんだけ、変数は新規に確保されます。また、別々のインスタンスにもとづく変数は、それぞれ別個の変数です。なので、上記コードでは「みかんジュース」を宣言しようが「牛乳」はそのまま問題なく残りつづけます。
==== コンストラクタ ====
|