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

クラス・インスタンス・継承 (1/6)

作成:2013-08-10 10:34
更新:2013-08-10 10:34

■クラスとインスタンスの仕組み

前回、サンプルで作ったクラスとMainメソッドについて説明をしましたが、これは「アプリで必ず用意しないといけないものを作った」というだけで、クラスとメソッドを使ったとはとてもいえません。今回は、オリジナルなクラスとメソッドを作り、それを実際に利用しながら、クラスの使い方を理解していきましょう。

クラスは、「class クラス名」という形で作成しましたね。そしてその後の{}内に、メソッドなどを用意することになっていました。では、実際に「MyObject」というクラスを作ってみましょう。このクラスでは、名前と年齢の情報を保管することができ、保管している情報をまとめて出力するメソッドを用意することにします。

下のリスト欄に、簡単なサンプルを挙げておきます。ここではMyObjectクラスを定義し、それをMainメソッドから利用をしています。まず、MyObjectにどんなものが用意されているか見てみましょう。

・フィールド
public string name = "(noname)";
public int age = 0;
MyObjectクラスの中には、最初にnameageという変数の宣言が書かれていますね。クラス定義内に用意されるこうした変数は「フィールド」と呼ばれます。フィールドは、クラスの中で必要となる値を保管しておくのに用いられます。
        
・メソッド
public void printData(){……略……}
メソッドについては前回説明しました。クラスに用意される、さまざまな処理をまとめたものですね。ここではprintDataというメソッドが用意してあります。

クラスには、基本的に「フィールド」と「メソッド」が用意されます。この2つが、クラスを構成する基本要素といってよいでしょう。こうした「クラスの中に用意されるもの」をまとめてクラスの「メンバ」と呼びます。

このMyObjectの基本的な構成を頭に入れて、Mainでこれがどのように使われているかをチェックしてみましょう。すると、まずこんな形で変数に代入がされています。
MyObject obj = new MyObject();
この「new クラス」というものは、「インスタンス」を作成するためのものです。インスタンスというのは、クラスをメモリ内にコピーして自由に利用できるようにしたものです。このように「newを使ってインスタンスを作り、それを操作する」というのが、クラス利用の基本なのです。


※ReadKeyについて

ここではもう1つ、ちょっと新しいものを使っています。Console.ReadKey();というものです。これは、押したキーを読み取るメソッドです。これがあると、プログラムはユーザーが何かのキーを押すまで待ち続け、キーが押されるとその情報を取得して返します。

つまり、これを用意しておけば「何かのキーを押すまでプログラムはずっと待ち続ける」というこっとになります。コンソールプログラムでは、これを用意することで、勝手に終了しないようにできるわけです。これで、作成したEXEをダブルクリックして実行しても、瞬時にウインドウが消えてしまったりしなくなります。

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

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

●プログラム・リスト●

using System;

namespace myapp
{
    class Program
    {
        public static void Main(string[] args)
        {
            MyObject obj = new MyObject();
            obj.name = "つやの";
            obj.age = 123;
            obj.printData();
            Console.ReadKey(); // キーを押すまで待つ
        }
    }
    
    class MyObject
    {
        public string name = "(noname)";
        public int age = 0;
        
        public void printData()
        {
            Console.WriteLine("名前:{0}, 年齢:{1}歳", name, age);
        }
    }
}
※関連コンテンツ

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