1 / 14

Paradigmas da Programação – Semestre 2 – Aula 13

Paradigmas da Programação – Semestre 2 – Aula 13. Professor: Eduardo Mantovani (eduardo.mantovani@aes.edu.br) Prof. Fábio de Paula Santos fabps@mandic.com.br. INTERFACES. Especificam conjuntos de serviços (métodos e atributos) que as classes devem implementar

peggy
Download Presentation

Paradigmas da Programação – Semestre 2 – Aula 13

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Paradigmas da Programação – Semestre 2 – Aula 13 Professor: Eduardo Mantovani (eduardo.mantovani@aes.edu.br) Prof. Fábio de Paula Santos fabps@mandic.com.br

  2. INTERFACES • Especificam conjuntos de serviços (métodos e atributos) que as classes devem implementar • É usada quando não existe nenhuma implementação padrão para herdar

  3. Interfaces • Palavra-chave interface • A classe assina um “contrato” com o compilador que diz que “ esta classe definirá todos os métodos e atributos especificados pela interface. • As interfaces são quase sempre comparadas à classes abstratas. Uma classe abstrata serve como classe-base para uma família de classes derivadas, enquanto que as interfaces foram feitas para serem misturadas a outras árvores de herança

  4. Interfaces e Polimorfismo • Interfaces fornecem conjuntos uniformes de métodos e atributos para objetos de classes díspares ( Ex: pessoas e árvores). • Isso permite que os programas processem objetos destas classes de maneira polimórfica ( pessoas e arvores tem algo em comum: a idade)

  5. Criando a aplicação • Windows Form • Crie cada classe separadamente: • File/New File/Visual C# Class

  6. Juntando classes em arquivos separados numa única aplicação Adicione os .CS em sua aplicação. Obs: procure salvar os .CS na mesma pasta de sua aplicação.

  7. Foreach • Permite a iteração de todos os itens de uma array examinando cada item de cada vez. foreach( int i in intArray) { Console.WriteLine( i.ToString()); }

  8. Classe 1: a interface using System; /// arquivo: IIdade.cs /// Esta interface declara propriedade para configurar e obter a idade das classes (nao importa se pessoas ou árvores) /// propriedade de somente leitura que todas as classes que a implementam devem fornecer implementacoes public interface IIdade { public int Idade { get; } public string NomeCompleto { get; } }

  9. Classe 2: pessoa using System; /// <summary> /// a classe pessoa tem uma data de nascimento. /// Os atributos NomeCompleto e Idade, satisfazem os requisitos de implementacao definidos na interface IIdade; /// portanto, a classe Pessoa cumpre o seu "contrato" com o compilador /// </summary> public class Pessoa : IIdade // a classe pessoa implementa a interface IIdade { private string Nome; private string Sobrenome; private int AnoNascimento; public Pessoa(string ValorNome, string ValorSobrenome, int ValorAnoNascimento) { Nome = ValorNome; Sobrenome = ValorSobrenome; if( ValorAnoNascimento > 0 && ValorAnoNascimento <= DateTime.Now.Year) AnoNascimento = ValorAnoNascimento; else AnoNascimento = DateTime.Now.Year; }

  10. Classe 2: pessoa (cont..) public int Idade //implementacao do atributo Idade da interface IIdade { get { return( DateTime.Now.Year - AnoNascimento); } } public string NomeCompleto //implementacao do atributo Idade da interface IIdade { get { return( Nome + " "+ Sobrenome ); } } }//fecha pessoa

  11. Classe 3: arvore using System; /// arvore.cs /// contém o numero de anéis de uma arvore, o que corresponde a sua idade /// public class Arvore : IIdade { private int aneis; // numero de aneis de um tronco public Arvore(int anoPlantacao) { aneis = (DateTime.Now.Year - anoPlantacao); } public void AddAneis() { aneis++; }

  12. Classe 3: arvore ( cont..) public int Idade { get { return aneis; } } public string NomeCompleto { get { return( "Arvore"); } } }

  13. A aplicação class TesteInterface { static void Main(string[] args) { Arvore arvore = new Arvore(1978); Pessoa pessoa = new Pessoa("Eduardo", "Mantovani", 1950); Pessoa pessoa2 = new Pessoa("Fabio", "Santos", 1920); IIdade[] iIdadeArray = new IIdade[3]; iIdadeArray[0] = arvore; iIdadeArray[1] = pessoa; iIdadeArray[2] = pessoa2; string saida = arvore + ":" + arvore.NomeCompleto + "\nIdade é " + arvore.Idade + "\n\n"; foreach( IIdade referencia in iIdadeArray) { saida += referencia.NomeCompleto + " Sua Idade é: "+ referencia.Idade + "\n" ; } MessageBox.Show(saida, " Demonstracao de Polimorfismo/Interface"); } }

  14. Nesta aula aprendemos... • Interface ( necessidade de um contrato) • Polimorfismo ( arvore e pessoa) • Criar uma aplicação com classes em arquivos separados • Uso de foreach

More Related