Circile()メソッド

ホームC#入門講座第3章:ものづくり技術論 > Circile()メソッド

Circile()メソッド

メソッドのソースコード

もう一度メソッドの部分のソースコードだけ示します。

// メソッド
public double Circle()
{
	return Math.Pow(this.r, 2) * Math.PI;
		
}

メソッドの宣言部分

public double Circle()

メソッドの宣言部分はプロパティと同様です。ただ、メソッド名の後に( )かっこが付いている点だけが違います。

メソッドは値を受け取ることができます。それも、複数個受け取ることができます。受け取る値を「引数」と言います。たとえば、今までにも多く使った「ConsoleクラスのWriteLine()メソッド」はこのように宣言されています。

public static void WriteLine (string value)

valueというのが表示する文字列を参照する変数です。この変数が「引数」です。「引数」は「ひきすう」と呼びます。また、「MathクラスのPow()メソッド」はこのように宣言されています。

public static double Pow (double x,double y)

Pow()メソッドは「xのy乗」を計算する機能を持っており、引数は2つ必要です。

メソッドの定義部分

return Math.Pow(this.r, 2) * Math.PI;

メソッドの機能は「値を受け取り、処理して返す」です。ここでは値を受け取らず、フィールドから処理しています。プロパティから値を取得してもかまいません。

Pow()メソッドを用いて半径を2乗し、それにMath.PIフィールドを用いてπをかけています。そして得られた面積の値を return で返しています。return はプロパティでも用います。

返すときの値の型が、面積を求めるプログラムでは double なので double を宣言部分で使っています。何も値を返さないときは void を使います。Main()メソッドは何も値を返さないので void です。

なお、Math.PIはプロパティではありません。これは3.14159265358979323846という定数であり、変数によく似ていますが const キーワードで「変更不可」の制限がかけられています。このように、変更することのない値を定数といいます。

static とは?

これまでにも何度か登場した static は「静的メンバ」を表すキーワードです。静的メンバとは「オブジェクト化しなくても使えるメンバ」です。

クラスは設計図なので、そこに定義したメンバはオブジェクト化しない限り使うことはできません。しかし、たとえばMath.Pow()メソッドやMath.PIフィールドを使うためだけにMathクラスをオブジェクト化するのは非効率的です。また、文字列を表示するためだけにConsoleクラスをオブジェクト化するのも非効率的です。

そのため、単体で機能した方がいいと思われるメンバは「静的メンバ」とし、static修飾子を付けて宣言します。そうすることで、直接アクセスできるのです。

一般的に考えれば、円の面積を求めるメソッドも static の方が便利でしょう。ですが、ここではオブジェクト指向を学ぶためにあえてstaticを使っていません。StreamReaderクラスのように、それが単体として独立し、内部のメンバが密接に関連しあって動作するような場合には static が付いていないはずです。そして、今後はそのようなクラスをたくさん用いていきます。

次回は、newキーワードによるオブジェクトの生成方法について学びます。設計図から物体をつくり出す、魔法のキーワードです。