TECH I.S.

C# クラス メンバー


クラスメンバー

クラス内のフィールドとメソッドは、よく「クラスメンバー」と呼ばれます。

2つのフィールド1つのメソッド3つのクラスメンバーを持つCarクラスを作成します。

{.language-java .techis-white}
// The class
class MyClass
{
// Class members
  string color = "red"; // field
  int maxSpeed = 200; // field
public void fullThrottle() // method
{
Console.WriteLine("The car is going as fast as it can!");
}
}

フィールド

前の章で、クラス内の変数はフィールドと呼ばれ、クラスのオブジェクトを作成し、ドット構文 (.)を使用することで変数にアクセスできる事を学びました。

次の例では、myObjという名前のCarクラスのオブジェクトを作成します。次に、フィールドcolormaxSpeedの値を出力します。

{.language-csharp .techis-white}
class Car
{
  string color = "red";
int maxSpeed = 200;
  static void Main(string[] args)
{
    Car
<strong>myObj</strong>
= new Car();
    Console.WriteLine(myObj.color);
Console.WriteLine(myObj.maxSpeed);
  }
}

フィールドを空白のままにして、オブジェクトの作成時に変更することもできます。

{.language-csharp .techis-white}
class Car
{
  string color;
int maxSpeed;
  static void Main(string[] args)
{
    Car
<strong>myObj</strong>
= new Car();
myObj.color = "red";
myObj.maxSpeed = 200;
    Console.WriteLine(myObj.color);
Console.WriteLine(myObj.maxSpeed);
  }
}

これは、1つのクラスの複数のオブジェクトを作成する場合に特に便利です。

{.language-csharp .techis-white}
class Car
{
string model;
  string color;
int year;
  static void Main(string[] args)
{
    Car Ford = new Car();
Ford.model = "Mustang";
Ford.color = "red";
Ford.year = 1969;
    Car Opel = new Car();
Opel.model = "Astra";
Opel.color = "white";
Opel.year = 2005;
    Console.WriteLine(Ford.model);
Console.WriteLine(Opel.model);
  }
}


オブジェクトメソッド

C# メソッドの章で、特定のアクションを実行するためにメソッドが使用されることを学びました。

メソッドは通常、クラスに属し、クラスのオブジェクトがどのように動作するかを定義します。

フィールドと同様に、ドット構文を使用してメソッドにアクセスできます。ただし、メソッドはpublicである必要があることに注意してください。また、メソッド名の後に 2 つの括弧()とセミコロン;を続けて使用することに注意してください。メソッドを呼び出す(実行する)には、次のようにします。

{.language-csharp .techis-white}
class Car
{
  string color; // field
int maxSpeed; // field
public void fullThrottle() // method
{
Console.WriteLine("The car is going as fast as it can!");
}
  static void Main(string[] args)
{
    Car
<strong>myObj</strong>
= new Car();
myObj.fullThrottle(); // Call the method
  }
}

C#メソッドの章の例の様に、メソッドをstaticではなくpublicとして宣言したのはなぜですか? 理由は簡単です。staticクラスのオブジェクトを作成せずにメソッドにアクセスできますが、publicメソッドはオブジェクトからのみアクセスできます。
***

複数のクラスを使用する

前の章で、整理を改善するために複数のクラスを使用できることを思い出してください (1つはフィールドとメソッド用、もう1つは実行用)。
これをお勧めします:

prog2.cs

{.language-csharp .techis-white}
class Car
{
public string model;
  public string color;
public int year;
public void fullThrottle()
{
Console.WriteLine("The car is going as fast as it can!");
}
}

prog.cs

{.language-csharp .techis-white}
class Program
{
static void Main(string[] args)
{
    Car Ford = new Car();
Ford.model = "Mustang";
Ford.color = "red";
Ford.year = 1969;
    Car Opel = new Car();
Opel.model = "Astra";
Opel.color = "white";
Opel.year = 2005;
    Console.WriteLine(Ford.model);
Console.WriteLine(Opel.model);
  }
}

publicキーワードはアクセス修飾子と呼ばれ、CarフィールドがProgramのような他のクラスからもアクセス可能であることを指定します。

詳しくはこちらのアクセス修飾子の章で。

ヒント:読み進めるうちに、コンストラクタプロパティの様なクラスメンバについても学ぶ事が出来ます。



プログラミング学習を加速させる

プログラミングをプロの講師に教えてもらいませんか。

テックアイエスのプログラミングスクールは初心者も大歓迎です。年齢制限もありません。転職・副業に強く、挫折させない手厚いサポートで稼ぐ力を身につけましょう!

スクールの詳細