libro
www.tuyano.com
初心者のためのC#プログラミング入門

コンストラクタ・静的クラス・抽象クラス・部分クラス (2/4)

作成:2013-08-17 10:43
更新:2013-08-17 10:43

■静的(static)クラス

静的クラス」というのは、「インスタンスを作らずに利用するクラス」のことです。通常、クラスというのはインスタンスを作成して操作をします。そうすることでインスタンスごとに値を保存できたり、いくつものインスタンスを同時に作って操作したりできるからですが、時にはそうした操作の必要がないようなクラスもあるでしょう。例えば純粋に計算だけを行うクラスなどは、いちいちインスタンスを作るより、クラスを直接操作できたほうが便利なものです。

こうした場合に用いられるのが「静的クラス」です。これは、静的メンバからなるクラスです。インスタンスメソッドやインスタンスフィールドなどは一切使わず、静的メソッド静的フィールドだけで構成されます。これらはクラスから直接実行するメソッド、クラスに直接値を保管するフィールドです。

この「静的」というのは、「static」という識別子をつけることで指定できます。例えば、静的クラスの簡単な利用例を下のリスト欄に掲載しておきましょう。これを実行すると、「金額:1000円 税込:10500円」といったテキストが表示されます。

ここでは、Taxという静的クラスを定義しています。この中には、taxという静的フィールドと、calcという静的メソッドが用意されています。いずれも、これまでのクラスと基本的な書き方は変わっていません。単に、名前の前に「static」というものがついただけです。

これを利用しているのがProgramクラスですが、このTaxクラスを使っている部分を見ると以下のように記述されていることがわかりますね。
Tax.tax = 5; // taxフィールドに「5」を設定する
Tax.calc(1000); // calcメソッドを呼び出す
Taxクラスから直接フィールドやメソッドを呼び出しています。静的クラスはこのように、すべてクラスから直接利用します。慣れてしまえば、使い方は割と簡単ですね。

それから、これは考えて見れば当たり前のことですが、静的クラスはクラスそのままで利用しますから、「コンストラクタを用意してフィールドをまとめて初期化」とかできません。最初に設定する値が決まっているなら、クラスのフィールドの初期値として設定しておくのが良いでしょう。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

using System;

namespace myapp
{
    class Program
    {
        public static void Main(string[] args)
        {
            Tax.tax = 5;
            Tax.calc(1000);
            Console.ReadKey(); // キーを押すまで待つ
        }
    }
    
    static class Tax
    {
        public static int tax = 5;
        
        public static void calc(int price)
        {
            double price2 = price * (1.0 + (tax / 100.0));
            Console.WriteLine("金額:{0}円 税込:{1}円", price, price2);
        }
    }
}
※関連コンテンツ

「初心者のためのC#プログラミング入門」に戻る