2015年11月8日 星期日

C7_1 類別定義 類別成員的可見性存取

class Vehicle //定義汽車類別
{
    public int wheels; //公有成員 輪子個數
    protected float weight; //保護成員 重量
    private string color; //私有成員 汽車的顏色
    public void F()
    {
        wheels = 4; //正確,允許存取自身成員
        weight = 10; //正確,允許存取自身成員
        color = "白色"; //正確,允許存取自身成員
    }
}
class Train //定義火車類別
{
    public int num; //公有成員 車廂數目
    private int passengers; //私有成員 乘客數
    private float weight; //私有成員 重量
    public void F()
    {
        num = 5; // 正確,允許存取自身成員
        weight = 100; //正確,允許存取自身成員
        Vehicle v = new Vehicle();
        v.wheels = 4; //正確,允許存取Vehicle的公有成員
        v.weight = 6; //錯誤,不允許存取Vehicle的保護成員
        v.color = "白色"; //錯誤,不允許存取Vehicle的私有成員
    }
}
class Car : Vehicle  //定義轎車類別
{
    private int passengers; //定義轎車類別
    new public void F()
    {
        Car car = new Car();
        car.wheels = 4; //正確,允許存取Vehicle的公有成員
        car.color = "白色"; //錯誤,不允許存取Vehicle的私有成員
        car.weight = 6; //正確,允許存取Vehicle的保護成員
    }
}

沒有留言: