static void Main(string[] args)
        {
            Carro carro = new Carro();

            carro.Marca = "Fiat";
            //carro.AntigosDonos = new List<string>();
            //carro.AntigosDonos.Add("João da Silva");
            //Console.WriteLine("A marca do carro é " + carro.Marca);

            Dono donoJoao = new Dono();

            donoJoao.Nome  = "João";
            donoJoao.Idade = 30;

            Dono donoMaria = new Dono();

            donoMaria.Nome  = "Maria";
            donoMaria.Idade = 28;

            carro.AdicionarAntigoDono(donoJoao);
            carro.AdicionarAntigoDono(donoMaria);
            foreach (Dono dono in carro.GetAntigosDonos())
            {
                Console.WriteLine("Um dos antigos donos é {0}, que tem idade de {1} anos.", dono.Nome, dono.Idade);
            }
            Console.WriteLine(carro.Ligar());

            //Construtor com parâmetro opcional
            Carro carro5 = new Carro("Ford", "Ka");

            Console.WriteLine("Este carro é da marca {0}, modelo {1}, e possui {2} portas.", carro5.Marca, carro5.Nome, carro5.NumeroPortas);

            //Construtor de parâmetros nomeados
            Carro carro6 = new Carro(nome: "Ka", marca: "Ford", quantidadePortas: 2);

            Console.WriteLine("Este carro é da marca {0}, modelo {1}, e possui {2} portas.", carro6.Marca, carro6.Nome, carro6.NumeroPortas);

            //Construtor anônimo
            Carro carro7 = new Carro
            {
                Nome         = "Astra",
                Marca        = "GM",
                NumeroPortas = 4,
                Potencia     = 1.4
            };

            Console.WriteLine("Já este carro se chama {0}, é da marca {1}, possui {2} portas e tem motor {3}",
                              carro7.Nome,
                              carro7.Marca,
                              carro7.NumeroPortas,
                              carro7.Potencia);

            Moto moto1 = new Moto()
            {
                Nome             = "Titan",
                Marca            = "Honda",
                Potencia         = 150,
                CapacidadeTanque = 15,
            };

            Console.WriteLine("Essa moto se chama {0}, da marca {1}, com potência de {2} e capacidade do tanque de {3}",
                              moto1.Nome,
                              moto1.Marca,
                              moto1.Potencia,
                              moto1.CapacidadeTanque);

            Carro carroFord = new Carro();

            carroFord.Nome  = "Ka";
            carroFord.Marca = "Ford";
            Console.WriteLine(carroFord.Ligar());

            //Demonstração dos métodos herdados da classe Object
            Console.WriteLine("GetHashCode = " + carroFord.GetHashCode());
            Console.WriteLine("ToString = " + carroFord.ToString());
            Console.WriteLine("Equals = " + carroFord.Equals(carro7));

            //Criação de uma nova classe com os mesmos dados de outra. Teste com uma sobrecarga do método Object.Equals() específica
            //para a classe Carro
            Carro carroFord2 = new Carro("Ford", "Ka");

            Console.WriteLine("Equals = " + carroFord.Equals(carroFord2));

            //Lição de polimorfismo
            Veiculo meuCarro  = new Carro();
            Veiculo minhaMoto = new Moto();

            Console.WriteLine("Ligando o carro: " + meuCarro.Ligar());
            Console.WriteLine("Ligando a moto: " + minhaMoto.Ligar());
            Console.WriteLine("Desligando o carro: " + meuCarro.Desligar());
            Console.WriteLine("Desligando a moto: " + minhaMoto.Desligar());
            Console.WriteLine("Abastecendo o carro: {0}", meuCarro.Abastecer());
            Console.WriteLine("Desabastecendo o carro: {0}", meuCarro.Desabastecer());
            Console.WriteLine("Abastecendo a moto: {0}", minhaMoto.Abastecer());
            Console.WriteLine("Desabastecendo a moto: {0}", minhaMoto.Desabastecer());

            //Implementação a partir de uma interface
            IVeiculo meuCaminhao = new Caminhao();

            Console.WriteLine("Mensagem do caminhão: {0}", meuCaminhao.Ligar());
            Console.WriteLine("Abastecendo o caminhão: {0}", meuCaminhao.Abastecer());
            Console.WriteLine("Desabastecendo o caminhão: {0}", meuCaminhao.Desabastecer());

            Console.ReadKey();
        }
Exemple #2
0
        static void Main(string[] args)
        {
            Carro carro = new Carro();

            carro.Marca = "Fiat";

            /*carro.AntigosDonos = new List<string>();
             * carro.AntigosDonos.Add("João da Silva");
             * Console.WriteLine("A marca do carro é: {0}", carro.Marca);
             * foreach(string nome in carro.AntigosDonos)
             * {
             *  Console.WriteLine("Um dos antigos donos é {0}", nome);
             * }*/
            Dono donoJoao = new Dono();

            donoJoao.Nome  = "João";
            donoJoao.Idade = 30;
            Dono donoMaria = new Dono();

            donoMaria.Nome  = "Maria";
            donoMaria.Idade = 28;

            carro.AdicionarAntigoDono(donoJoao);
            carro.AdicionarAntigoDono(donoMaria);

            foreach (Dono dono in carro.GetAntigosDonos())
            {
                Console.WriteLine("Antigo dono do veiculo: {0} com idade {1}", dono.Nome, dono.Idade);
            }
            Console.WriteLine(carro.Ligar());
            Console.WriteLine("Este carro tem {0} portas", carro.NumeroPortas);
            Carro carro2 = new Carro("Astra");

            Console.WriteLine("Meu carro 2 se chama {0}", carro2.Nome);
            Carro carro3 = new Carro("Ford", 2);

            Console.WriteLine("Este outro carro é da {0} e tem {1} portas", carro3.Marca, carro3.NumeroPortas);
            Carro carro4 = new Carro(8);

            Console.WriteLine("Já este carro tem {0} portas", carro4.NumeroPortas);
            //Carro carro5 = new Carro("Ka", "Ford");
            Carro carro5 = new Carro(nome: "Ka", marca: "Ford", numeroPortas: 2);

            Console.WriteLine("O carro {1} da marca {0} tem {2} portas", carro5.Marca, carro5.Nome, carro5.NumeroPortas);
            Carro carro6 = new Carro
            {
                Nome         = "Astra",
                Marca        = "GM",
                NumeroPortas = 4,
                Potencia     = 1.4
            };

            Console.WriteLine("Agora este carro se chama {0}, é da marca {1}, possui {2} portas e tem potência de {3}",
                              carro6.Nome,
                              carro6.Marca,
                              carro6.NumeroPortas,
                              carro6.Potencia);
            Carro carro7 = new Carro();

            Console.WriteLine("O carro 7 está ligado a potencia de {0}", carro7.Ligar());
            Moto moto1 = new Moto
            {
                Nome             = "Titan",
                Marca            = "Honda",
                Potencia         = 150,
                CapacidadeTanque = 15
            };

            Console.WriteLine("Essa moto se chama {0}, da marca {1}, com potencia de {2} e capacidade do tanque{3}",
                              moto1.Nome,
                              moto1.Marca,
                              moto1.Potencia,
                              moto1.CapacidadeTanque);

            Carro carroford = new Carro();

            carroford.Nome  = "Ka";
            carroford.Marca = "Ford";
            Carro carroFord2 = new Carro();

            carroFord2.Nome  = "Ka";
            carroFord2.Marca = "Ford";
            Console.WriteLine(carroford.Ligar());

            Console.WriteLine(carro.GetHashCode());
            Console.WriteLine(carroford.ToString());
            Console.WriteLine(carroford.Equals(carroFord2));
            //Polimorfismo devido a herança
            Veiculo meuCarro  = new Carro();
            Veiculo minhaMoto = new Moto();

            Console.WriteLine("Ligando o carro: {0}", meuCarro.Ligar());
            Console.WriteLine("Ligando a moto: {0}", minhaMoto.Ligar());
            Console.WriteLine("Desligando o carro: {0}", meuCarro.Desligar());
            Console.WriteLine("Desligando a moto: {0}", minhaMoto.Desligar());
            Console.WriteLine("Abastecendo o carro: {0}", meuCarro.Abastecer());
            Console.WriteLine("Abastecendo moto: {0}", minhaMoto.Abastecer());
            Veiculo meuCaminhao = new Caminhao();

            Console.WriteLine("O caminhão ligando: ", meuCaminhao.Ligar());
            Console.WriteLine("Abastecendo o caminhão: {0}", meuCaminhao.Abastecer());
            Console.WriteLine("Abastecendo o caminhão: {0}", meuCaminhao.Desabaster());
        }
        static void Main(string[] args)
        {
            Carro carro = new Carro();
            carro.Marca = "fiat";
            //struct
            Dono donoJoao = new Dono();
            donoJoao.Nome = "João";
            donoJoao.Idade = 30;

            Dono donoMaria = new Dono();
            donoMaria.Nome = "Maria";
            donoMaria.Idade = 28;

            carro.AdicionarAntigoDono(donoJoao);
            carro.AdicionarAntigoDono(donoMaria);

            foreach (Dono dono in carro.GetAntigosDonos())
            {
                Console.WriteLine("Um dos antigos donos é {0} com idade de {1} ",dono.Nome,dono.Idade);

            }

            Console.WriteLine(carro.Ligar());
            Console.WriteLine("este carro tem {0} portas", carro.NumeroPortas);

            Carro carro2 = new Carro("Astra");

            Console.WriteLine("Este outro carro se chama {0}", carro2.Nome);

            Carro carro3 = new Carro("Ford",numero: 2);

            Console.WriteLine("este carro é da marca {0} e tem {1} portas", carro3.Nome, carro3.NumeroPortas);

            Carro carro4 = new Carro(nome: "ka",marca: "Ford"); //não precisa da ordem, só atribuir o nome dos bois
            Console.WriteLine("este ultimo carro é da mara {0}, tem {1} portas e seu nome é {2}", carro4.Marca, carro4.NumeroPortas, carro4.Nome);

            //construtor anonimo - ele chama o padrão e define os sets
            Carro carro6 = new Carro
            {
                Nome = "Astra",
                Marca = "GM",
                NumeroPortas = 4,
                Potencia = 1.4
            };

            Console.WriteLine("Agora esse carro se chama {0}, é da marca {1} e tem {2} portas com {3} de potência", carro6.Nome, carro6.Marca, carro6.NumeroPortas, carro6.Potencia);


            Carro carro7 = new Carro();
            Console.WriteLine("Mensagem do carro: {0}",carro7.Ligar());


            Moto moto1 = new Moto();
            moto1.Nome = "Titan";
            moto1.Marca = "Honda";
            moto1.CapacidadeTanque = 15;
            moto1.Potencia = 150;

            Console.WriteLine("Essa moto {0} é da marca {1} com {2} cilindradas e com {3} litros de tanque", moto1.Nome, moto1.Marca, moto1.Potencia, moto1.CapacidadeTanque);


            Carro carrFord = new Carro();

            carrFord.Nome = "Ka";
            carrFord.Marca = "Ford";

            Carro carroFord = new Carro();
            carroFord.Nome = "Ka";
            carroFord.Marca = "Ford";

            Console.WriteLine(carrFord.Ligar());
            Console.WriteLine("GetHashCode = {0}", carrFord.GetHashCode());
            Console.WriteLine("ToString = {0}", carrFord.ToString());
            Console.WriteLine("Equals = {0}",carrFord.Equals(carroFord));

            //poliformismo
            Veiculo meuCarro = new Carro();
            Veiculo minhaMoto = new Moto();

            Console.WriteLine("Ligando o carro: {0}", meuCarro.Ligar());
            Console.WriteLine("Ligando a Moto: {0}", minhaMoto.Ligar());
            Console.WriteLine("Desligando o carro: {0}", meuCarro.Desligar());
            Console.WriteLine("Desligando a Moto: {0}", minhaMoto.Desligar());


            Console.WriteLine("Abastecendo o carro {0}",meuCarro.Abastecer());
            Console.WriteLine("Abastecendo a moto {0}", minhaMoto.Abastecer());

            /* não faz sentido, se ele não é carro nem moto, não é nada
            Veiculo meuVeiculo = new Veiculo();
            Console.WriteLine("Mensagem do Veiculo = {0}", meuVeiculo.Ligar());
            */

            //polimorfismo em nivel de interface
            IVeiculo meuCaminhao = new Caminhao();
            Console.WriteLine("Mensagem do caminhao: {0}", meuCaminhao.Ligar());
            Console.WriteLine("Abastecendo o Caminhão {0}", meuCaminhao.Abastecer());
            Console.WriteLine("Abastecendo o Caminhão {0}", meuCaminhao.Desabastecer());
            Console.WriteLine("Mensagem do caminhao: {0}", meuCaminhao.Desligar());
            Console.ReadKey();
        }