2010年1月3日日曜日

アクセス修飾子のpublic,protected,privateを使用して変数、Methodを定義して、BaseClass,DerivedClass,MainClassのそれぞれがらメンバにアクセスできる保護レペルを確認してみる。

using System;


class BaseClass
{
    string name = "Kamimura";
    protected int age = 0;


    public void setName(string name)
    {
        this.name = name;
    }
    public virtual void printOut()
    {
        Console.WriteLine
            ("名前:{0} 年齢:{1}", name, age);
    }
}


class DerivedClass : BaseClass
{
    public override void printOut()
    {
        /* nameは既定のprivateなのエラーになる
        this.name = "Kamimura1"; */
        // ageはprotectedなのでアクセス可能
        this.age = 1;
        base.printOut();
    }
}


class MainClass
{
    static void Main()
    {
        var drv = new DerivedClass();
        // 出力値:名前:Kamimura 年齢:1
        drv.printOut();
        drv.setName("Kamimura1");
        /* nameはprotectedなのでアクセスできない
        drv.name = "Kamimura2"; */
        /* ageはprotectedなのでアクセスできない
        drv.age = 2; */
        // 出力値:名前:Kamimura1 年齢:1
        drv.printOut();
    }
}

0 コメント:

コメントを投稿