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(); }
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(); }