Programadora de Informtica Programao em C Joo Paulo

  • Slides: 24
Download presentation
Programador/a de Informática Programação em C# João Paulo Silva Setembro 2009

Programador/a de Informática Programação em C# João Paulo Silva Setembro 2009

2 Índice • Programação Orientada a Objectos

2 Índice • Programação Orientada a Objectos

3 Programação Orientada a Objectos • Programação centrada na ideia em que o programa

3 Programação Orientada a Objectos • Programação centrada na ideia em que o programa é composto por um conjunto de entidades (objectos e eventos), capazes de se inter-relacionarem Carro Motor Portas Pneus Ligar Acelerar Travar

4 Programação Orientada a Objectos • As LPOO assentam em 4 pilares que são:

4 Programação Orientada a Objectos • As LPOO assentam em 4 pilares que são: ▫ Abstracção; ▫ Encapsulamento; ▫ Herança; ▫ Polimorfismo;

5 Objectos • Objecto: entidades que existem (reais ou abstractas) • Classe: implementação em

5 Objectos • Objecto: entidades que existem (reais ou abstractas) • Classe: implementação em código de um objecto • Instância: concretização de uma classe/objecto • Objecto: Fig. Geometrica (conceito de forma) • Classe: Fig. Geometrica. cs (codificação do conceito) • Instância: concretização codificada de uma forma Fig. Geometrica quadrado = new Fig. Geometrica(“quadrado”);

6 Entidades • Namespace (“pacote”) ▫ conjunto de ficheiros (classes, interfaces) ▫ agregados por

6 Entidades • Namespace (“pacote”) ▫ conjunto de ficheiros (classes, interfaces) ▫ agregados por funcionalidades • Interface ▫ contrato de implementação (modelo de implementação obrigatória) • Classe ▫ ▫ ▫ ▫ ▫ namespace: “pacote” a que pertence a classe using: ficheiros/objectos utilizados de outros namespaces declaração da classe (normalmente nome igual ao ficheiro) zero, um ou mais interfaces zero ou uma super-classe atributos (variáveis internas da classe) construtores (inicializadores da classe) métodos (executam acções. Semelhante a “funções”. ) propriedades (atributos disponíveis para o exterior da classe)

7 Exercício nº 1 • Exercício nº 1

7 Exercício nº 1 • Exercício nº 1

8 Estrutura de uma Classe using … namespace Nome. Namespace { acesso class Nome.

8 Estrutura de uma Classe using … namespace Nome. Namespace { acesso class Nome. Classe { acesso Tipo nome_atributo [= valor]; acesso Tipo nome_Método(Lista de parâmetros) {. . . } acesso void nome_Método(Lista de parâmetros) {. . . } } }

9 Exemplo using System; using System. Data; namespace Gestao. Formacao { public class Formando

9 Exemplo using System; using System. Data; namespace Gestao. Formacao { public class Formando { private double nota. Exame = 15. 4; private string materia. Exame = "C#"; public void Mostra. Nota() { System. Console. Write. Line(nota. Exame); } } }

10 Tipos de acesso • PUBLIC - Os membros da classe não possuem qualquer

10 Tipos de acesso • PUBLIC - Os membros da classe não possuem qualquer restrição e podem ser acedidos por qualquer programa. • PRIVATE - Os membros somente podem ser acedidos a partir da própria classe. • PROTECTED - Os membros são acessíveis a partir da própria classe e das classes derivadas. • INTERNAL - Os membros são acessíveis somente dentro do programa que possui a declaração da classe. • PROTECTED INTERNAL - Os membros são acedidos somente pelo código de dentro do projecto e pelo código na classe derivada.

11 Abstracção • É a capacidade de pensar nos objectos da vida real e

11 Abstracção • É a capacidade de pensar nos objectos da vida real e classificá-los. • Um Ferrari por exemplo tem as mesmas características do objecto Jaguar, logo têm algo em comum, ou seja, ambos são carros. Deste modo pertencem à entidade carro.

12 Abstracção Mamíferos Aves Répteis Animais Mamíferos Aves Répteis …

12 Abstracção Mamíferos Aves Répteis Animais Mamíferos Aves Répteis …

13 Exercício nº 2 • Exercício nº 2

13 Exercício nº 2 • Exercício nº 2

14 Encapsulamento • Característica das LPOO que consiste em: ▫ esconder do utilizador externo:

14 Encapsulamento • Característica das LPOO que consiste em: ▫ esconder do utilizador externo: a estrutura interna de dados (evitar a exposição) mecanismos utilizados para implementação das funcionalidades ▫ Utilizador apenas tem acesso às funcionalidades

15 Encapsulamento - Exemplo Resumindo Ocultação da composição interna das classes, controlando o acesso

15 Encapsulamento - Exemplo Resumindo Ocultação da composição interna das classes, controlando o acesso aos seus dados e ao código das suas “funções” membro.

16 Herança • Capacidade de uma classe herdar atributos e comportamento de uma outra

16 Herança • Capacidade de uma classe herdar atributos e comportamento de uma outra classe • Permite que características comuns e comportamentos comuns ou parecidos a diversas classes sejam abstraídas e centralizadas numa classe base - superclasse. ▫ Tem uma relação “É um”. Um Jaguar “é um” carro. Logo deriva da classe carro, pois contém as características comuns dum carro. Um Quadrado “é uma” figura geométrica. Um Programador “é um” funcionário. Uma Ave “é um” animal. Uma Águia “é uma” ave.

17 Herança Um Gerente “é um” funcionário. Funcionário Classe Base Especialização Generalização Gerente Classe

17 Herança Um Gerente “é um” funcionário. Funcionário Classe Base Especialização Generalização Gerente Classe Derivada

18 Herança Geral Específico Classe Base (características comuns) Classe Derivada (características específicas) Possui os

18 Herança Geral Específico Classe Base (características comuns) Classe Derivada (características específicas) Possui os atributos e métodos da classe Herdada

19 Exercício nº 2 • Exercício nº 2

19 Exercício nº 2 • Exercício nº 2

20 Exercício nº 3 • Exercício nº 3

20 Exercício nº 3 • Exercício nº 3

21 Polimorfismo • Característica que permite distintas implementações para o mesmo interface (interface ou

21 Polimorfismo • Característica que permite distintas implementações para o mesmo interface (interface ou classe abstracta) • Classe abstracta: ▫ Numa classe abstracta pelo menos um dos seus métodos é abstracto; ▫ Tem de ser declarada abstract • Método abstracto: ▫ Método sem implementação (só assinatura) ▫ Tem de ser declarado abstract

22 Exercício nº 4 • Exercício nº 4

22 Exercício nº 4 • Exercício nº 4

23 Mais Informação. . . • Programação Orientada a Objectos em. NET ▫ http:

23 Mais Informação. . . • Programação Orientada a Objectos em. NET ▫ http: //msdn. microsoft. com/ptbr/library/cc 580626. aspx

Programador/a de Informática Programação em C# João Paulo Silva Setembro 2009

Programador/a de Informática Programação em C# João Paulo Silva Setembro 2009