desenvolvimento de aplicações desktopfiles.professor-charles-ete.webnode.com/200000409... ·...

41
Desenvolvimento de Aplicações Desktop Conceitos Básicos de POO Professor: Charles Leite

Upload: others

Post on 25-Aug-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Desenvolvimento de

Aplicações Desktop

Conceitos Básicos de POO

Professor: Charles Leite

Page 2: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Motivação

• Na Programação OO, um OBJETO éconsiderado a entidade central de umprograma

• Assim, o desenvolvimento de software naOO consiste em definir objetos queinteragem entre si, com um propósitoespecífico

2

Page 3: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Motivação

3

E qual a vantagem de tudo isso?

Page 4: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Motivação

• O mundo (a realidade) é formado por objetos

• Assim, a programação OO pode ser usada para representar de forma eficiente as entidades do mundo real– Podemos criar um objeto, por exemplo, para representar

um funcionário de uma empresa– Assim, poderíamos criar um objeto por funcionário, com

características e comportamentos para representá-lo

• Com isso, a programação OO permite mapear nossos programas a situações reais que eles representam

4

Page 5: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Motivação

5

A Programação OO torna mais fácil

resolver problemas reais

Page 6: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Princípios da OO

• A programação OO requer um conhecimento sólido dos seguintes conceitos:– Objeto– Atributo– Método– Classe– Encapsulamento– Herança– Polimorfismo

• Além desses, existem outros que permitem adaptar nossas soluções de diversas formas

6

Page 7: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Objetos

• Um OBJETO constitui um elemento fundamental de um programa– Representa um entidade real no domínio do

problema• Por exemplo, uma conta bancária para um sistema bancário

• Podemos considerar que na OO tudo são objetos– Os sistemas são objetos– Os “dados” manipulados e comunicados entre os

sistemas são objetos– Cada parte de um sistema (sub-sistema) é um objeto– Os dispositivos eletrônicos são objetos– A interface com o usuário é um objeto, composto por

vários outros objetos

7

Page 8: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Objetos

• Todo objeto é definido por um ESTADO e por um conjunto de COMPORTAMENTOS

– O ESTADO representa as características ou propriedades de um objeto• Por exemplo, o estado de um objeto que representa uma

conta bancária pode ser o seu número e seu saldo

– Os COMPORTAMENTOS são as atividades que um objeto pode realizar, ou seja, suas operações• O comportamento pode examinar ou alterar o estado de um

objeto• Por exemplo, as atividades (operações) de sacar dinheiro e

de fazer depósitos poderiam estar associadas a uma conta bancária

8

Page 9: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Objetos

• Um objeto que representa um Blu Ray

9

O estado atual do Blu Ray; o que ele

está fazendo ...As operações que o

Blu Ray pode executar

Page 10: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Objetos

• Um objeto que representa uma CONTA BANCÁRIA

10

Page 11: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Objetos

• Estados do objeto CONTA BANCÁRIA

– O COMPORTAMENTO, nesse caso, alterou o ESTADO do objeto

11

Page 12: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Atributos

• São valores que um objeto armazena internamente, podendo ser representados por dados primitivos ou por outros objetos

– Por exemplo:

• Um objeto que representa uma conta bancária pode armazenar um número real para representar seu saldo

• Ele ainda pode conter outros atributos, como o nome do seu proprietário

• Os valores de todos os atributos de um objeto definem o seu estado

12

Page 13: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Métodos

• Um MÉTODO consiste num grupo de declarações, identificado por um nome

• Quando um método de um objeto é chamado, dentro de um programa, suas declarações são executadas

• Um objeto possui um conjunto de métodos associado– Esses métodos definem, exatamente, os comportamentos

do objeto

• Por exemplo:– O comportamento “fazer um depósito” de um objeto

conta bancária é definido por um método que contém declarações que atualizarão o saldo dessa conta

13

Page 14: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Métodos

• Existe uma relação direta entre os atributos de um objeto e seus métodos

14

Page 15: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Classes

• Um objeto é definido a partir de uma CLASSE• Uma CLASSE representa um agrupamento de

objetos que possuem propriedades comuns e que podem realizar as mesmas operações– É uma definição que descreve como objetos

pertencentes à ela são estruturados internamente –quais propriedades e operações que o objeto possui

• CLASSE é um conceito, enquanto OBJETO é uma instância desse conceito

• Uma CLASSE serve como um modelo para criação de objetos– Portanto, podemos ter vários objetos pertencentes à

mesma classe

15

Page 16: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Classes

• Por exemplo:

– Uma planta criada por um arquiteto, para projetar uma casa, define diversas características (paredes, janelas, portas, tomadas, etc.)

– Uma vez que a planta é criada, diversas casas podem ser construídas, seguindo esse modelo

– Nesse sentido, casas construídas seguindo esse modelo são diferentes

• Elas possuem características diferentes (localizações, endereços, móveis, habitadas por pessoas diferentes, etc.)

16

Page 17: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Classes

17

Page 18: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Classes

• Uma vez que uma classe é definida, múltiplos objetos podem ser criados

– Por exemplo, podemos definir uma classe para representar o conceito de uma conta bancária e criar múltiplas objetos que representam contas bancárias específicas e individuais

– Cada conta bancária manteria, por exemplo, seu próprio saldo

18

Page 19: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Classes

• Múltiplos objetos podem ser criados a partir da mesma classe

19

Page 20: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Encapsulamento

• Um objeto deve ser ENCAPSULADO, o que significa que ele protege e gerencia suas próprias informações

• Ou seja, um objeto deve ser auto-gerenciável– Mudanças no seu estado só podem ser

realizadas pelos seus próprios métodos

– Nenhum outro objeto pode alterar o seu estado

20

Page 21: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Encapsulamento

• Um objeto pode, então, ser visto como uma “caixa preta”, onde os detalhes internos são escondidos dos clientes

• Clientes acessam o estado do objeto, através dos métodos oferecidos

21

Page 22: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Herança

• Classes podem ser criadas a partir da definição de outras classes existentes, através do conceito de HERANÇA

• O conceito de HERANÇA é uma forma de REUSO DE SOFTWARE que captura as diversas similaridades entre os diversos tipos de classes que podemos e queremos criar– Uma classe pode ser usada para derivar diversas

novas classes– Classes derivadas podem então ser usadas para

derivar ainda mais classes

22

Page 23: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Herança

• Assim, através da HERANÇA, podemos criar uma hierarquia de classes, onde os atributos e métodos definidos em uma classe são HERDADOS pelos seus filhos que, por sua vez, podem também ser passados para seus filhos e assim por diante

• Por exemplo:– Podemos criar uma hierarquia de classes que

representa diversos tipos de contas bancárias

– Características comuns são definidas em classes de nível mais alto e diferenças específicas são definidas em classes derivadas

23

Page 24: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Herança

24

Animal

Réptil

Cobra Lagarto

Pássaro

Papagaio

Mamífero

Cavalo Morcego

Page 25: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Herança

• Objeto do tipo Banco tem vários objetos do tipo Conta

– Conta é sub-classe de Banco, ou seja, Conta herda de Banco

25

Page 26: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Herança• Por sua vez, a classe Poupança é uma

versão especializada da classe Conta

– Métodos e atributos são herdados

26

Page 27: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Polimorfismo

• POLIMORFISMO é um conceito baseado na idéia de que podemos referenciar múltiplos objetos relacionados, através do conceito de HERANÇA, de múltiplas formas

• Assim, o polimorfismo permite que referências de tipos de classes mais abstratas representem o comportamento das classes concretas que referenciam– Um mesmo método pode ser definido de várias

formas, dependendo do seu contexto

• Isso nos dá a possibilidade de projetar soluções poderosas e eficientes para problemas que lidam com múltiplos objetos

27

Page 28: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Princípios da OO

• Em síntese:

28

Todos esses conceitos devem ser MUITO BEM compreendidos para

a criação de implementações eficientes, dentro do paradigma

OO

Page 29: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Criando Programas para Resolver Problemas

• Em geral, a resolução de problemas consiste nas seguintes etapas:1. Compreendendo o problema2. Projetando a solução3. Considerando alternativas para a solução e

refinando a solução4. Implementando a solução5. Testando a solução e resolvendo quaisquer

problemas que ocorram

• Essas atividades, não necessariamente, são lineares– Normalmente, elas se sobrepõem

29

Page 30: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Criando Programas para Resolver Problemas

1. Compreendendo o problema

– Embora óbvio, a falta de atenção nessa etapa leva o software ao fracasso

– Cada problema possui um domínio específico• As peculiaridades do mundo real que são a chave para

a solução do problema• Assim, para desenvolver uma boa solução, deve-se

entender completamente o domínio do problema

– Exemplo:• Um programa para calcular a pontuação de um jogo de

boliche• O domínio do problema são as regras do jogo

30

Page 31: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Criando Programas para Resolver Problemas

2. Projetando a solução– O segredo para projetar bem uma solução é quebrá-la

em parte, ou seja, “dividir para conquistar”– Raramente, uma solução pode ser desenvolvida

através de uma única tarefa– A solução deve consistir de uma série de tarefas

pequenas que interagem, na execução de uma tarefa maior

– No desenvolvimento de software, não devemos escrever um grande programa• Devemos projetar partes separadas que são responsáveis por

certas partes da solução• Em seguida, integrar essas partes com outras, constituindo a

solução final

31

Page 32: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Criando Programas para Resolver Problemas

3. Considerando alternativas para a solução e refinando a solução

– Nem sempre, nossa primeira solução para um problema é a melhor

– Precisamos, então, considerar alternativas e refinar a solução quando necessário

– Quanto mais cedo consideramos essas alternativas, mas fácil fica a modificação da nossa abordagem no desenvolvimento da solução

32

Page 33: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Criando Programas para Resolver Problemas

4. Implementando a solução– Consiste, exatamente, em considerar o projeto do

software e a alternativa encontrada, e codificá-la (escrever o programa)

5. Testando a solução e resolvendo quaisquer problemas que ocorram

– Em diversos momentos do processo de desenvolvimento, devemos testar nossa solução para encontrar erros e resolvê-los

– O teste não elimina todos os tipos de problemas• Porém, aumenta a confiança da nossa solução

33

Page 34: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Usando a OO para Desenvolver Programas

34

O conceito de Orientação a Objetos é independente

da linguagem de programação

Page 35: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Usando a OO para Desenvolver Programas

35

Page 36: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Usando a OO para Desenvolver Programas

36

• Portanto, um programa (módulo) acessa serviços fornecidos por outro programa (módulo) através da API (Application Program Interface) desse último

– O programador inclui chamadas aos serviços da API dentro do código do programa

• O que importa é a interface da API, ou seja, quais são os serviços oferecidos e como podemos utilizá-los

Page 37: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Usando a OO para Desenvolver Programas

37

O conceito de API está presente em qualquer

ambiente de programação e é

independente da OO

Page 38: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Usando a OO para Desenvolver Programas

• As API, por sua vez, são organizadas (estruturadas) em pacotes

• Pacote é uma entidade que agrupa classes logicamente relacionadas

– Funciona como uma espécie de biblioteca

– Evita conflitos de nomes de classes

38

Page 39: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Usando a OO para Desenvolver Programas

• Neste curso, usaremos a API padrão do JDK

• Ela cobre todas as bibliotecas de classes da plataforma Java, usadas para construir programas

• Ela é bastante extensa, o que a torna complexa de entendimento para programadores iniciantes

39

Page 40: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

Usando a OO para Desenvolver Programas

• A API do JDK:

40

Page 41: Desenvolvimento de Aplicações Desktopfiles.professor-charles-ete.webnode.com/200000409... · •Podemos considerar que na OO tudo são objetos –Os sistemas são objetos –Os

DÚVIDAS ...