A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Paradigmas da Programação – Semestre 2 – Aula 13 Professor: Eduardo Mantovani Prof. Fábio de Paula Santos

Apresentações semelhantes


Apresentação em tema: "Paradigmas da Programação – Semestre 2 – Aula 13 Professor: Eduardo Mantovani Prof. Fábio de Paula Santos"— Transcrição da apresentação:

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; /// /// 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 /// 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 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++; } Classe 3: arvore

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

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


Carregar ppt "Paradigmas da Programação – Semestre 2 – Aula 13 Professor: Eduardo Mantovani Prof. Fábio de Paula Santos"

Apresentações semelhantes


Anúncios Google