예제 #1
0
    static void Main(string[] args)
    {
        //Tässä luodaan robotti-olio.
        Robotti robotti = new Robotti();

        //Tässä määritellään robotin pyörimiskulma.
        double pyorimisKulma = Math.PI / 3;

        int aloitusPisteX = 10, aloitusPisteY = 30;
        int lopetusPisteX = 450, lopetusPisteY = 320;

        robotti.Aloita();

        //Tässä kutsutaan IAlustus-liittymän
        //metodi AsetaAloitusPiste(), joka periytyy
        //luokkaan Robotti liittymän IRobotti kautta.
        robotti.AsetaAloitusPiste(aloitusPisteX,
                                  aloitusPisteY);

        //Tässä kutsutaan liittymän IPyori metodi Pyori(),
        //joka periytyy luokkaan Robotti liittymän IRobotti
        //kautta.
        robotti.Pyori(pyorimisKulma);

        //Tässä kutsutaan liittymän IAlustus
        //metodi AsetaLopetusPiste(), joka periytyy luokkaan
        //Robotti liittymän IRobotti kautta.
        robotti.AsetaLopetusPiste(lopetusPisteX,
                                  lopetusPisteY);

        robotti.Lopeta();
    }
        static void Main(string[] args)
        {
            //Tässä luodaan robotti-olio.
            Robotti robotti = new Robotti();

            //Seuraavassa alustetaan robotti-olio.
            robotti.AsetaAloitusPiste(0, 0);
            robotti.AsetaLopetusPiste(30, 45);

            //Tässä kutsutaan RobottiToiminnassa property
            Console.WriteLine("Robotti on toiminnassa: " +
                              robotti.RobottiToiminnassa);

            robotti.Aloita();

            Console.WriteLine("Robotti on toiminnassa: " +
                              robotti.RobottiToiminnassa);

            robotti.Lopeta();

            Console.WriteLine("Robotti on toiminnassa: " +
                              robotti.RobottiToiminnassa);

            //Tässä kutsutaan Laskematka(), joka on periytynyt
            //Matka luokasta.
            Console.WriteLine("Robotin kuljettama matka: {0,7:f2} cm ", robotti.Laskematka());
        }
예제 #3
0
    static void Main(string[] args)
    {
        //Tässä luodaan robotti olio.
        Robotti robotti = new Robotti();

        //Tässä kutsutaan IVideoKamera liittymän Aloita()
        //metodi.
        robotti.Aloita();

        //Tässä kutsutaan IVideoKamera liittymän Lopeta()
        //metodi.
        robotti.Lopeta();

        //Koska IRobotti liittymän metodit toteutettiin
        //eksplisiittisesti, robotti olio pitää ensin muuntaa
        //IRobotti liittymäksi, minkä jälkeen pystytään
        //kutsumaan IRobotti liittymän metodit.
        IRobotti iRobotti = robotti as IRobotti;

        //Tässä kutsutaan IRobotti liittymän Aloita() metodi.
        iRobotti.Aloita();

        //Tässä kutsutaan IRobotti liittymän RobottiToiminnassa
        //property. Huomaa, että koska Robotti luokassa on vain
        //yksi RobottiToiminnassa property, se voidaan kutsua
        //myös robotti olion kautta seuraavasti:
        //Console.WriteLine("Robotti on toiminnassa: " +
        //robotti.RobottiToiminnassa);

        Console.WriteLine("Robotti on toiminnassa: " +
                          iRobotti.RobottiToiminnassa);

        //Tässä kutsutaan IRobotti liittymän Lopeta() metodi.
        iRobotti.Lopeta();
    }
예제 #4
0
    static void Main(string[] args)
    {
        //Tässä luodaan robotti-olio.
        Robotti robotti = new Robotti();

        //Seuraavassa alustetaan robotti-olio.
        robotti.AsetaAloitusPiste(10, 5);
        robotti.AsetaLopetusPiste(54, 98);

        //Tässä kutsutaan RobottiToiminnassa property
        Console.WriteLine("Robotti on toiminnassa: " +
                          robotti.RobottiToiminnassa);

        robotti.Aloita();


        Console.WriteLine("Robotti on toiminnassa: " +
                          robotti.RobottiToiminnassa);

        robotti.Lopeta();

        Console.WriteLine("Robotti on toiminnassa: " +
                          robotti.RobottiToiminnassa);

        //Tässä kutsutaan Laskematka(), joka on periytynyt
        //Matka luokasta.
        Console.WriteLine("Robotin kuljettama matka: {0,7:f2} cm ", robotti.Laskematka());

        Console.WriteLine("Tyyppimuunnos liittymaan");
        //Tyyppimuunnos liittymään
        IRobotti iRobotti = (IRobotti)robotti;

        //Liittymäksi muunnetulla oliolla voidaan viitata vain liittymässä esiintyviin jäseniin
        iRobotti.Aloita();
        iRobotti.Lopeta();
        // mutta ei olion roboti luokassa oleviin muihin jäseniin.
        // kuten iRobotti.maara, vain robotti.maara
        Console.WriteLine("Maara: " + robotti.maara);

        // is-operaattori
        if (robotti is IRobotti)
        {
            System.Console.WriteLine("robotti-olio tukee IRobotti liittymaan");
        }


        else
        {
            System.Console.WriteLine("robotti-olio ei tue IRobotti liittymaan");
        }
    }
예제 #5
0
    static void Main(string[] args)
    {
        //Tässä luodaan robotti-olio.
        Robotti robotti = new Robotti();

        //Seuraavassa alustetaan robotti-olio.
        robotti.AsetaAloitusPiste(10, 5);
        robotti.AsetaLopetusPiste(54, 98);

        //Tässä kutsutaan RobottiToiminnassa –property.
        Console.WriteLine("Robotti on toiminnassa: " +
                          robotti.RobottiToiminnassa);

        robotti.Aloita();

        Console.WriteLine("Robotti on toiminnassa: " +
                          robotti.RobottiToiminnassa);

        robotti.Lopeta();

        Console.WriteLine("Robotti on toiminnassa: " +
                          robotti.RobottiToiminnassa);

        //Tässä kutsutaan robotin Matka-property.
        Console.WriteLine("Robotin kuljettama matka: {0,7:f2} cm ", robotti.Matka);

        // tarkistetaam tukeeko olion luokka tiettyä liittymää
        if (robotti is IRobotti)
        {
            System.Console.WriteLine("robotti-olio tukee IRobotti liittymaa");
        }
        else
        {
            System.Console.WriteLine("robotti-olio ei tue IRobotti liittymaa");
        }

        //Tässä tyyppimuunnos liittymään.
        IRobotti iRobotti = (IRobotti)robotti;

        //Tämän jälkeen iRobotti olion kautta voidaan kutsua liittymän IRobotti  jäsenet
        iRobotti.Aloita();
        Console.WriteLine("Robotti on toiminnassa: " + iRobotti.RobottiToiminnassa);
    }
예제 #6
0
    static void Main(string[] args)
    {
        //Tässä luodaan robotti-olio.
        Robotti robotti = new Robotti();

        //Tässä tarkisteen tukeeko robotti IRobotti liittymää.
        if (robotti is IRobotti)
        {
            Console.WriteLine("robotti-olio tukee liittymää IRobotti");
        }
        else
        {
            Console.WriteLine("robotti-olio ei tue liittymää IRobotti ");
        }

        //Tässä tarkisteen tukeeko robotti IPyori liittymää.
        if (robotti is IPyori)
        {
            Console.WriteLine("robotti-olio tukee liittymaa IPyori ");
        }
        else
        {
            Console.WriteLine("robotti-olio ei tue liittymaa IPyori ");
        }

        //Tässä yritetään muuntaa robotti IPyori-tyypiseksi.
        IPyori iPyoriRobotti = robotti as IPyori;

        if (iPyoriRobotti != null)
        {
            //Jos iPyoriRobotti ei ole null, IPyori-liittymästä
            //periytyvä Pyori()-metodi kutsutaan.
            iPyoriRobotti.Pyori(45.0);
        }
        else
        {
            Console.WriteLine("robotti-oliota ei voi muuntaa iPyoriRobotti:ksi");
            //Jos luokka tukee liittymää, as-operaattori suorittaa tyyppimuunnoksen
            //ja muuten se palauttaa null-arvon.
        }
    }
예제 #7
0
    static void Main(string[] args)
    {
        //Tässä luodaan robotti-olio.
        Robotti robotti = new Robotti();

        //Tässä kutsutaan liittymän IVideoKamera
        //metodi Aloita().
        robotti.Aloita();

        //Koska liittymän IRobotti  metodit toteutettiin
        //eksplisiittisesti, robotti-olio pitää ensin muuntaa
        //IRobotti-tyyppiseksi, minkä jälkeen liittymästä
        //IRobotti periytyvät metodit pystytään kutsumaan.
        IRobotti iRobotti = robotti as IRobotti;

        //Tässä kutsutaan liittymästä IRobotti periytyvä
        //metodi Aloita().
        iRobotti.Aloita();

        //Tässä kutsutaan liittymästä IVideoKamera periytyvä
        //metodi Lopeta().
        robotti.Lopeta();
    }